<?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>236138</bug_id>
          
          <creation_ts>2022-02-04 06:34:34 -0800</creation_ts>
          <short_desc>Add support to query camera and microphone permissions</short_desc>
          <delta_ts>2022-02-11 01:51:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1837346</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-04 06:34:34 -0800</bug_when>
    <thetext>Add support to query camera and microphone permissions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837347</commentid>
    <comment_count>1</comment_count>
      <attachid>450888</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-04 06:39:54 -0800</bug_when>
    <thetext>Created attachment 450888
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837445</commentid>
    <comment_count>2</comment_count>
      <attachid>450888</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-04 08:46:33 -0800</bug_when>
    <thetext>Comment on attachment 450888
WIP

r=me once the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837728</commentid>
    <comment_count>3</comment_count>
      <attachid>450979</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-05 00:55:38 -0800</bug_when>
    <thetext>Created attachment 450979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838682</commentid>
    <comment_count>4</comment_count>
      <attachid>451252</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-08 08:20:08 -0800</bug_when>
    <thetext>Created attachment 451252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839665</commentid>
    <comment_count>5</comment_count>
      <attachid>451537</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-10 08:05:47 -0800</bug_when>
    <thetext>Created attachment 451537
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840270</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-11 01:50:37 -0800</bug_when>
    <thetext>Committed r289612 (247125@main): &lt;https://commits.webkit.org/247125@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451537.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840271</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-11 01:51:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88805269&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450888</attachid>
            <date>2022-02-04 06:39:54 -0800</date>
            <delta_ts>2022-02-05 00:55:33 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-236138-20220204153951.patch</filename>
            <type>text/plain</type>
            <size>23871</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmUyYWM1M2NhZWVjOWNl
MmY1NWJiMmM3NDIyYzhjZjU1ODY4OGRmZi4uZTQ1NWQ0NDYwNTE0OWIyZGNhOTZjM2NmNmQ5NjBm
YzYzNDE0N2NkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBx
dWVyeSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgcGVybWlzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBxdWVyeVBlcm1pc3Npb24gdG8g
YmUgYXN5bmMgYXMgaXQgbWF5IHJlcXVpcmUgdG8gY2hlY2sgdG8gVUlQcm9jZXNzLgorICAgICAg
ICBUZXN0cyB0byBiZSBhZGRlZC4KKworICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVy
bWlzc2lvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1p
c3Npb25zLmNwcDoKKwogMjAyMi0wMi0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGVJbWFnZVNhbXBsZSBzaG91
bGQgdGFrZSBhIHByZXNlbnRhdGlvblRpbWUgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZiODQw
NTgzNmJkMzY0NzcyNWE5MjQ1NzVmOWZiNzBhMmQ4ZGJkMzIuLjMzMzliMzE3YWVmODAwNjFkNDJh
YTI1ZGU1NjBhYzViMzkzMDc2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjItMDIt
MDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IHRvIHF1ZXJ5IGNhbWVyYSBhbmQgbWljcm9waG9uZSBwZXJtaXNzaW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBTUEkgdG8gcXVl
cnkgZm9yIHBlcm1pc3Npb24gKHdpdGhvdXQgcmVxdWVzdGluZyBhbnl0aGluZyB0byB1c2VyKS4K
KyAgICAgICAgVXNlIHRoaXMgdG8gaW1wbGVtZW50IGNhbWVyYS9taWNyb3Bob25lIHBlcm1pc3Np
b24uCisgICAgICAgIEluIGNhc2Ugb2YgcGVybWlzc3Npb24gcGVyc2lzdGVudGx5IGRlbmllZCwg
b25seSBleHBvc2UgaXQgaWYgd2ViIHBhZ2UgYWxyZWFkeSBjYWxsZWQgZ2V0VXNlck1lZGlhLgor
ICAgICAgICBJbiBjYXNlIG9mIHBlcm1pc3Npb24gbm90IHBlcnNpc3RlbnRseSBzZXQsIGNvbXB1
dGUgdGhlIHBlcm1pc3Npb24gc3RhdGUgYWNjb3JkaW5nIHBhc3QgZ2V0VXNlck1lZGlhIHJlcXVl
c3RzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW06CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9MYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbToK
KwogMjAyMi0wMi0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTGliV2ViUlRDQ29kZWNzIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzIGNhbiBkZWFkbG9jayBp
biBjYXNlIG9mIEdQVVByb2Nlc3MgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbkNvbnRyb2xsZXIuaAppbmRleCA4MjVmODBm
OGFlZjNhMzczOWE4MGMwZWFjMGE4MGM0OWRhODEwZWRiLi44YjY5YjM1YmYxMTJhM2U4NGM5YTY1
YmI2YWM4YTVmZTgwYTI4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bl
cm1pc3Npb25zL1Blcm1pc3Npb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uQ29udHJvbGxlci5oCkBAIC0zOCw4ICszOCw3IEBA
IHN0cnVjdCBQZXJtaXNzaW9uRGVzY3JpcHRvcjsKIGNsYXNzIFBlcm1pc3Npb25Db250cm9sbGVy
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBlcm1pc3Npb25Db250cm9sbGVyPiB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+UGVybWlzc2lvbkNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7Ci0g
ICAgdmlydHVhbCBQZXJtaXNzaW9uU3RhdGUgcXVlcnkoQ2xpZW50T3JpZ2luJiYsIFBlcm1pc3Np
b25EZXNjcmlwdG9yJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdChDbGllbnRPcmln
aW4mJiwgUGVybWlzc2lvbkRlc2NyaXB0b3ImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJt
aXNzaW9uU3RhdGUpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHF1ZXJ5KFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYmLCBQZXJtaXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8UGVybWlzc2lvblN0YXRlPik+JiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgYWRkT2JzZXJ2ZXIoUGVybWlzc2lvbk9ic2VydmVyJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVPYnNlcnZlcihQZXJtaXNzaW9uT2JzZXJ2ZXImKSA9IDA7CiBwcm90ZWN0ZWQ6
CkBAIC01MSw4ICs1MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPER1bW15UGVybWlzc2lv
bkNvbnRyb2xsZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHVtbXlQZXJtaXNz
aW9uQ29udHJvbGxlcik7IH0KIHByaXZhdGU6CiAgICAgRHVtbXlQZXJtaXNzaW9uQ29udHJvbGxl
cigpID0gZGVmYXVsdDsKLSAgICBQZXJtaXNzaW9uU3RhdGUgcXVlcnkoQ2xpZW50T3JpZ2luJiYs
IFBlcm1pc3Npb25EZXNjcmlwdG9yJiYpIGZpbmFsIHsgcmV0dXJuIFBlcm1pc3Npb25TdGF0ZTo6
RGVuaWVkOyB9Ci0gICAgdm9pZCByZXF1ZXN0KENsaWVudE9yaWdpbiYmLCBQZXJtaXNzaW9uRGVz
Y3JpcHRvciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25TdGF0ZSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgY29tcGxldGlvbkhhbmRsZXIoUGVybWlzc2lvblN0YXRl
OjpEZW5pZWQpOyB9CisgICAgdm9pZCBxdWVyeShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgUGVy
bWlzc2lvbkRlc2NyaXB0b3ImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PFBlcm1pc3Npb25TdGF0ZT4pPiYmIGNhbGxiYWNrKSBmaW5hbCB7IGNhbGxiYWNrKHsgfSk7IH0K
ICAgICB2b2lkIGFkZE9ic2VydmVyKFBlcm1pc3Npb25PYnNlcnZlciYpIGZpbmFsIHsgfQogICAg
IHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoUGVybWlzc2lvbk9ic2VydmVyJikgZmluYWwgeyB9CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9u
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25zLmNw
cAppbmRleCAyMTMzYjJhNzBiYjg4MjVjZjNjYzRkYzYxMjA4OTIzNDk1Yjk4YTBiLi5hZjU4Zjcz
NTg2N2RhNThmNzljOWI3OWIxNDhmNWM2ZjZlZDg4ZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25zLmNwcApAQCAtODksOCArODksMTkg
QEAgdm9pZCBQZXJtaXNzaW9uczo6cXVlcnkoSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gcGVy
bWlzc2lvbkRlc2NyaXB0b3JWYWx1ZSwgRE8KIAogICAgIGF1dG8qIG9yaWdpbiA9IGNvbnRleHQt
PnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gb3JpZ2luID8gb3JpZ2lu
LT5kYXRhKCkgOiBTZWN1cml0eU9yaWdpbkRhdGEgeyB9OwotICAgIGF1dG8gcGVybWlzc2lvblN0
YXRlID0gbV9jb250cm9sbGVyLT5xdWVyeShDbGllbnRPcmlnaW4geyBjb250ZXh0LT50b3BPcmln
aW4oKS5kYXRhKCksIG9yaWdpbkRhdGEgfSwgUGVybWlzc2lvbkRlc2NyaXB0b3IgeyBwYXJhbWV0
ZXJEZXNjcmlwdG9yIH0pOwotICAgIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9uU3RhdHVzOjpj
cmVhdGUoKmNvbnRleHQsIHBlcm1pc3Npb25TdGF0ZSwgcGFyYW1ldGVyRGVzY3JpcHRvcikpOwor
ICAgIG1fY29udHJvbGxlci0+cXVlcnkoQ2xpZW50T3JpZ2luIHsgY29udGV4dC0+dG9wT3JpZ2lu
KCkuZGF0YSgpLCBvcmlnaW5EYXRhIH0sIFBlcm1pc3Npb25EZXNjcmlwdG9yIHsgcGFyYW1ldGVy
RGVzY3JpcHRvciB9LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBhcmFt
ZXRlckRlc2NyaXB0b3IsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHBlcm1pc3Np
b25TdGF0ZSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IG1fbmF2aWdhdG9yID8g
bV9uYXZpZ2F0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7CisgICAgICAg
IGlmICghY29udGV4dCB8fCAhY29udGV4dC0+Z2xvYmFsT2JqZWN0KCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgY29udGV4dC0+cG9zdFRhc2soW3BhcmFtZXRlckRlc2NyaXB0b3Is
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCAgcGVybWlzc2lvblN0YXRlID0gV1RGTW92ZShw
ZXJtaXNzaW9uU3RhdGUpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlm
ICghcGVybWlzc2lvblN0YXRlKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0
dXM6OmNyZWF0ZShjb250ZXh0LCAqcGVybWlzc2lvblN0YXRlLCBwYXJhbWV0ZXJEZXNjcmlwdG9y
KSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDk2ODUwNTQ5Mjlj
ZmRjMzVlOThhMTVmMDU0Zjc4MzllMWRmNGFlMDguLmZiY2U5NDVlNDU4NmYyZGY3ZTc1MGZhOTgw
NzY2NDQ4N2RlMjg0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVDb25zZW50RGVj
aXNpb25SZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGVybWlz
c2lvblN0YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTIyMiw2ICsyMjMsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChXZWJL
aXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBjb25z
dCBXVEY6OlN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSB7IHBhZ2UucmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkJ5RGVmYXVsdEFjdGlvbihvcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcXVlcnlQZXJtaXNzaW9uKGNvbnN0
IFdURjo6U3RyaW5nJiBwZXJtaXNzaW9uTmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lv
blN0YXRlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsg
fQorCiAjaWYgRU5BQkxFKFdFQlhSKSAmJiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgUGxhdGZvcm1YUjo6U2Vz
c2lvbk1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIGdyYW50ZWQs
IGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGNvbnNlbnRSZXF1aXJl
ZCAqLywgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyogY29uc2VudE9w
dGlvbmFsICovLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGxhdGZvcm1Y
Ujo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0gICAgCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0WFJTZXNz
aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXRhaW5Q
dHI8aWQ+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihuaWwpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAppbmRleCBkNmE3YWI2ODBhYzdhZWM3YzgzMGVlZDc1NzEyYmIxNjVhZjVj
Y2FhLi5hZDVlNDJkNWRmY2NkMmMxNmQ0YmUxMzk4MjJmZWM0MzIxNzJhYmIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2
YXRlLmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRp
b246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25B
Y3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVy
ZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd2VkKSlk
ZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMp
KTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiopb3JpZ2luIGluaXRpYXRl
ZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShX
S1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lvbikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7Ci0KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcXVlcnlQZXJtaXNzaW9uOihOU1N0cmluZyopbmFtZSBmb3JPcmlnaW46
KFdLU2VjdXJpdHlPcmlnaW4qKW9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVy
bWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZy
YW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGVkaXRvclN0YXRlRGlkQ2hhbmdlOihOU0Rp
Y3Rpb25hcnkgKillZGl0b3JTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoMTEuMykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgK
aW5kZXggM2QxZTY0YzIxNWEyMjNmYjcxNjhmZmQ0MmJlMzU4NDg4ZjUyNTRiMS4uZjVjYTFkNTVj
Zjc0NTdhODE3NGQ3N2QxMzEwYmNhMzVmMWRiMzlkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgcmVxdWVzdFdlYkF1dGhlbnRpY2F0aW9uTm9HZXN0dXJlKEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICNlbmRpZgog
ICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJl
cXVlc3QoV2ViUGFnZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgICAgICB2b2lkIHF1ZXJ5UGVybWlzc2lvbihj
b25zdCBTdHJpbmcmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4pPiYmKSBmaW5hbDsKICAg
ICAgICAgdm9pZCBkaWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKFdlYlBhZ2VQcm94eSYp
IGZpbmFsOwogICAgICAgICB2b2lkIGRpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKFdl
YlBhZ2VQcm94eSYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbQppbmRleCBmOWQ2MzEzOWMwM2Y4MTVhNmU3MDBlOWIzY2M5MTkzYTdkNGVkNjRj
Li42ZDJkMjI2NWEyOTQ5MWI5NzgzZGFhYmMzODk5NmI1NzdlMjAzODQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTE3NDIsNiArMTc0Miw0MyBA
QCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYgogICAgIH0pLmdldCgpXTsKIH0KIAordm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6cXVlcnlQZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgcGVybWlzc2lv
bk5hbWUsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4pPiYmIGNhbGxiYWNrKQor
eworICAgIGlmICghbV91aURlbGVnYXRlKSB7CisgICAgICAgIGNhbGxiYWNrKFdlYkNvcmU6OlBl
cm1pc3Npb25TdGF0ZTo6UHJvbXB0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8gZGVsZWdhdGUgPSAoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KW1fdWlEZWxlZ2F0ZS0+bV9k
ZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKSB7CisgICAgICAgIGNhbGxiYWNrKFdl
YkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICghW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6cXVlcnlQZXJtaXNzaW9uOmZvck9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAgICAg
ICAgY2FsbGJhY2soV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlOjpQcm9tcHQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxs
Q2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLCBAc2VsZWN0b3IoX3dlYlZpZXc6cXVlcnlQZXJtaXNz
aW9uOmZvck9yaWdpbjpkZWNpc2lvbkhhbmRsZXI6KSk7CisgICAgW2RlbGVnYXRlIF93ZWJWaWV3
Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIHF1ZXJ5UGVybWlzc2lvbjpwZXJt
aXNzaW9uTmFtZSBmb3JPcmlnaW46d3JhcHBlcihvcmlnaW4pIGRlY2lzaW9uSGFuZGxlcjptYWtl
QmxvY2tQdHIoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGNoZWNrZXIgPSBXVEZNb3Zl
KGNoZWNrZXIpXShXS1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lvbikgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgICAgIHN3aXRjaCAoZGVjaXNpb24pIHsKKyAgICAgICAgY2FzZSBXS1Blcm1pc3Np
b25EZWNpc2lvblByb21wdDoKKyAgICAgICAgICAgIGNhbGxiYWNrKFdlYkNvcmU6OlBlcm1pc3Np
b25TdGF0ZTo6UHJvbXB0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdLUGVy
bWlzc2lvbkRlY2lzaW9uR3JhbnQ6CisgICAgICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpQZXJt
aXNzaW9uU3RhdGU6OkdyYW50ZWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
V0tQZXJtaXNzaW9uRGVjaXNpb25EZW55OgorICAgICAgICAgICAgY2FsbGJhY2soV2ViQ29yZTo6
UGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9KS5nZXQoKV07Cit9CisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZEVuYWJs
ZUluc3BlY3RvckJyb3dzZXJEb21haW4oV2ViUGFnZVByb3h5JikKIHsKICAgICBpZiAoIW1fdWlE
ZWxlZ2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA5ZjM2MzEw
MTllOGE0Yzk1Y2M1NzJmYWVhY2U0NjFlNjRhOTYzMjU1Li42ZGM2OGUzM2M3ZWE2YTIyNzA2NWE1
YWI3MzdhMDkyZWE2ZTZjZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKICNpbmNsdWRlICJE
ZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCkBAIC0zMzksNyArMzQwLDcgQEAg
Y29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBp
ZiAoIWdyYW50ZWRSZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKS5pc1Nh
bWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPmZyYW1lSUQoKSAhPSBmcmFtZUlE
KQorICAgICAgICBpZiAoZnJhbWVJRCAmJiBncmFudGVkUmVxdWVzdC0+ZnJhbWVJRCgpICE9IGZy
YW1lSUQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoZ3JhbnRlZFJlcXVl
c3QtPnJlcXVpcmVzVmlkZW9DYXB0dXJlKCkpCkBAIC02NzEsNiArNjcyLDI3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvclNwZWVjaFJlCiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqZnJhbWUsIFdURk1vdmUoYXBpUmVxdWVz
dGluZ09yaWdpbiksIFdURk1vdmUoYXBpVG9wT3JpZ2luKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAK
K3N0ZDo6b3B0aW9uYWw8UGVybWlzc2lvblN0YXRlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZmlsdGVyUGVybWlzc2lvblF1ZXJ5KGNvbnN0IENsaWVudE9yaWdpbiYg
b3JpZ2luLCBjb25zdCBQZXJtaXNzaW9uRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgUGVybWlzc2lv
blN0YXRlIHBlcm1pc3Npb25TdGF0ZSkKK3sKKyAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpLT5pc1NhbWVT
Y2hlbWVIb3N0UG9ydChvcmlnaW4udG9wT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCkpKQor
ICAgICAgICByZXR1cm4geyB9OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGRlc2Ny
aXB0b3IubmFtZSA9PSBQZXJtaXNzaW9uTmFtZTo6TWljcm9waG9uZSAmJiBjaGVja0FWQ2FwdHVy
ZUFjY2Vzc0ZvclR5cGUoTWVkaWFQZXJtaXNzaW9uVHlwZTo6QXVkaW8pID09IE1lZGlhUGVybWlz
c2lvblJlc3VsdDo6RGVuaWVkKQorICAgICAgICBwZXJtaXNzaW9uU3RhdGUgPSBQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZDsKKyAgICBlbHNlIGlmIChkZXNjcmlwdG9yLm5hbWUgPT0gUGVybWlzc2lv
bk5hbWU6OkNhbWVyYSAmJiBjaGVja0FWQ2FwdHVyZUFjY2Vzc0ZvclR5cGUoTWVkaWFQZXJtaXNz
aW9uVHlwZTo6VmlkZW8pID09IE1lZGlhUGVybWlzc2lvblJlc3VsdDo6RGVuaWVkKQorICAgICAg
ICBwZXJtaXNzaW9uU3RhdGUgPSBQZXJtaXNzaW9uU3RhdGU6OkRlbmllZDsKKyNlbmRpZgorCisg
ICAgLy8gV2Ugb25seSBleHBvc2UgUGVybWlzc2lvblN0YXRlOjpEZW5pZWQgaWYgdGhlIHBhZ2Ug
YWxyZWFkeSB0b29rIHRoZSByaXNrIG9mIHRyaWdnZXJpbmcgYSBnZXRVc2VyTWVkaWEgcHJvbXB0
LgorICAgIGlmIChwZXJtaXNzaW9uU3RhdGUgPT0gUGVybWlzc2lvblN0YXRlOjpEZW5pZWQgJiYg
KCFtX3ByZWdyYW50ZWRSZXF1ZXN0cy5pc0VtcHR5KCkgfHwgIW1fZ3JhbnRlZFJlcXVlc3RzLmlz
RW1wdHkoKSB8fCAhbV9kZW5pZWRSZXF1ZXN0cy5pc0VtcHR5KCkpKQorICAgICAgICByZXR1cm4g
UGVybWlzc2lvblN0YXRlOjpEZW5pZWQ7CisKKyAgICBpZiAocGVybWlzc2lvblN0YXRlID09IFBl
cm1pc3Npb25TdGF0ZTo6UHJvbXB0ICYmIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHsgfSwgb3Jp
Z2luLmNsaWVudE9yaWdpbi5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBvcmlnaW4udG9wT3JpZ2lu
LnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGRlc2NyaXB0b3IubmFtZSA9PSBQZXJtaXNzaW9uTmFt
ZTo6TWljcm9waG9uZSwgZGVzY3JpcHRvci5uYW1lID09IFBlcm1pc3Npb25OYW1lOjpDYW1lcmEp
KQorICAgICAgICByZXR1cm4gUGVybWlzc2lvblN0YXRlOjpHcmFudGVkOworCisgICAgcmV0dXJu
IHBlcm1pc3Npb25TdGF0ZTsKK30KIAogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RTeXN0ZW1WYWxpZGF0aW9u
KGNvbnN0IFdlYlBhZ2VQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgKaW5kZXggNjc0YmFiNGRiN2M5YzY0ZGVkODU3ODc0MWRiZDJhYjk5NmRj
NDA2NS4uYmM3ZWNlZTlmZWMxNjYyYjUxMjdhMWUyYTRiOWM5ODlhMWQzZDJlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSAiVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QZXJtaXNzaW9uRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGVybWlzc2lvblN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KQEAgLTM1LDYgKzM3LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2FwdHVyZURldmljZTsKK3N0cnVjdCBD
bGllbnRPcmlnaW47CiBzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKIHN0cnVjdCBNZWRpYVN0cmVh
bVJlcXVlc3Q7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKQEAgLTExMSw2ICsxMTQsOCBAQCBwdWJs
aWM6CiAgICAgICAgIGJvb2wgaXNTY3JlZW5DYXB0dXJlRGVuaWVkOwogICAgIH07CiAKKyAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4gZmlsdGVyUGVybWlzc2lvblF1
ZXJ5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFdlYkNvcmU6OlBlcm1pc3Np
b25EZXNjcmlwdG9yJiwgV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlKTsKKwogcHJpdmF0ZToKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTQ5
OTM1YzMyNWY2OWYzNDM0NDBjYWEwYWRkN2JmZmUxYzAwNTI4Mi4uMmNlYjAzM2Y5ZmI1MzZiNWJl
ZDU4ODNjZTRlZDkxYzE4ZjRiMTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC04NjE2LDEwICs4NjE2LDIxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXZv
a2VHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Ub2tlbihjb25zdCBTdHJpbmcmIGF1dGhvcml6YXRp
CiAgICAgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5yZXZva2VBdXRob3Jp
emF0aW9uVG9rZW4oYXV0aG9yaXphdGlvblRva2VuKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RQZXJtaXNzaW9uKGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFBlcm1pc3Npb25E
ZXNjcmlwdG9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uU3RhdGUpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnF1ZXJ5UGVybWlzc2lvbihjb25z
dCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgY29uc3QgUGVybWlzc2lvbkRlc2NyaXB0b3Im
IGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxQZXJtaXNz
aW9uU3RhdGU+LCBib29sIHNob3VsZENhY2hlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICAvLyBGSVhNRTogU2hvdyBhIHByb21wdCBmb3IgdXNlciBpbnB1dC4KLSAgICBjb21wbGV0aW9u
SGFuZGxlcihQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQpOworICAgIGlmIChkZXNjcmlwdG9yLm5h
bWUgIT0gUGVybWlzc2lvbk5hbWU6OkNhbWVyYSAmJiBkZXNjcmlwdG9yLm5hbWUgIT0gUGVybWlz
c2lvbk5hbWU6Ok1pY3JvcGhvbmUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBm
YWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjbGllbnRPcmlnaW4udG9wT3JpZ2luKTsKKyAgICBtX3Vp
Q2xpZW50LT5xdWVyeVBlcm1pc3Npb24oZGVzY3JpcHRvci5uYW1lID09IFBlcm1pc3Npb25OYW1l
OjpDYW1lcmEgPyAiY2FtZXJhIl9zIDogIm1pY3JvcGhvbmUiX3MsIG9yaWdpbiwgW3dlYWtSZXF1
ZXN0TWFuYWdlciA9IFdlYWtQdHIgeyB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KSB9LCBjbGllbnRPcmlnaW4sIGRlc2NyaXB0b3IsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCF3ZWFrUmVxdWVzdE1hbmFnZXIgfHwgIXJlc3VsdCkgeworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoeyB9LCBmYWxzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIod2Vha1JlcXVlc3RNYW5hZ2VyLT5maWx0ZXJQZXJtaXNz
aW9uUXVlcnkoY2xpZW50T3JpZ2luLCBkZXNjcmlwdG9yLCAqcmVzdWx0KSwgZmFsc2UpOworICAg
IH0pOwogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggNTA3ZWFjOGE5NjUyYWUwZmUwYTEzYjIyNmRlZmY4ODJkZWMz
OGYzMS4uMTk5MTVkNDQ2NWEzMWY5YjE4NDc4YmFmNzVhNTkwMDM5MmNiY2FkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIxOTcsNyArMjE5Nyw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShHZW9s
b2NhdGlvbklkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJik7CiAgICAgdm9pZCByZXZva2VHZW9s
b2NhdGlvbkF1dGhvcml6YXRpb25Ub2tlbihjb25zdCBTdHJpbmcmIGF1dGhvcml6YXRpb25Ub2tl
bik7Ci0gICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mLCBjb25zdCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBxdWVyeVBl
cm1pc3Npb24oY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgV2ViQ29yZTo6UGVy
bWlzc2lvbkRlc2NyaXB0b3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPiwgYm9vbCBzaG91bGRDYWNoZSk+JiYpOwogCiAjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvV2Vi
VmlldyhVc2VyTWVzc2FnZSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxNWNkMGUzZDU5NjhiYzY2MTdlYTVjNGEyOGYwMTdh
MTE0ZGFiOTViLi40NDA5NDgxNmE0MzUzYTVhNTRhODhjYjA4NGQ3NWY3ZWM4OGMxNzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC02MDgsNyArNjA4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBNb2RlbEVs
ZW1lbnRTZXRJc011dGVkKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50
aWZpZXIsIGJvb2wgaXNNdXRlZCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICNlbmRpZgogCi0g
ICAgcmVxdWVzdFBlcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4s
IHN0cnVjdCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciBkZXNjcmlwdG9yKSAtPiAoZW51
bTp1aW50OF90IFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZSBzdGF0ZSkgQXN5bmMKKyAgICBRdWVy
eVBlcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIHN0cnVjdCBX
ZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciBkZXNjcmlwdG9yKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+IHN0YXRlLCBib29sIHNob3VsZENhY2hlKSBBc3lu
YwogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCiAgICAgU3RhcnRBcHBsZVBheUFNU1VJ
U2Vzc2lvbihVUkwgb3JpZ2luYXRpbmdVUkwsIHN0cnVjdCBXZWJDb3JlOjpBcHBsZVBheUFNU1VJ
UmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVy
bWlzc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcAppbmRleCBkNjAxODIxZjBhODVjMDMy
MTAwM2ZlMGRjZWQ3OTc2ZDllMjBlZTVkLi4zNzkwYzEyOGNlNjIxMTlkZTgyMTA4Nzg3ODA0YzJm
ZDUzMjY3N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxlci5jcHAKQEAgLTQz
LDE4ICs0MywxMCBAQCBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6V2ViUGVybWlzc2lvbkNvbnRy
b2xsZXIoV2ViUGFnZSYgcGFnZSkKIHsKIH0KIAotV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlIFdl
YlBlcm1pc3Npb25Db250cm9sbGVyOjpxdWVyeShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmln
aW4sIFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikKK3ZvaWQgV2Vi
UGVybWlzc2lvbkNvbnRyb2xsZXI6OnF1ZXJ5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdp
biwgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3ImJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybiBX
ZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU6OkRlbmllZDsKLQotICAgIHJldHVybiBxdWVyeUNhY2hl
KFdURk1vdmUob3JpZ2luKSwgV1RGTW92ZShkZXNjcmlwdG9yKSk7Ci19Ci0KLXZvaWQgV2ViUGVy
bWlzc2lvbkNvbnRyb2xsZXI6OnJlcXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2lu
LCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoIW1fcGFnZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7CiAKICAgICBhdXRvIGNhY2hlZFJlc3VsdCA9IHF1ZXJ5Q2FjaGUo
b3JpZ2luLCBkZXNjcmlwdG9yKTsKICAgICBpZiAoY2FjaGVkUmVzdWx0ICE9IFdlYkNvcmU6OlBl
cm1pc3Npb25TdGF0ZTo6UHJvbXB0KQpAQCAtMTEyLDEzICsxMDQsMTQgQEAgdm9pZCBXZWJQZXJt
aXNzaW9uQ29udHJvbGxlcjo6dHJ5UHJvY2Vzc2luZ1JlcXVlc3RzKCkKICAgICAgICAgfQogCiAg
ICAgICAgIGN1cnJlbnRSZXF1ZXN0LmlzV2FpdGluZ0ZvclJlcGx5ID0gdHJ1ZTsKLSAgICAgICAg
bV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFBlcm1pc3Npb24oY3VycmVudFJlcXVlc3Qub3JpZ2luLCBjdXJyZW50UmVxdWVzdC5kZXNjcmlw
dG9yKSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGF1dG8gc3RhdGUpIHsK
KyAgICAgICAgbV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UXVlcnlQZXJtaXNzaW9uKGN1cnJlbnRSZXF1ZXN0Lm9yaWdpbiwgY3VycmVudFJlcXVlc3Qu
ZGVzY3JpcHRvciksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShhdXRvIHN0
YXRlLCBib29sIHNob3VsZENhY2hlKSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgYXV0byB0YWtlblJlcXVlc3QgPSBt
X3JlcXVlc3RzLnRha2VGaXJzdCgpOwogICAgICAgICAgICAgdGFrZW5SZXF1ZXN0LmNvbXBsZXRp
b25IYW5kbGVyKHN0YXRlKTsKLSAgICAgICAgICAgIHVwZGF0ZUNhY2hlKHRha2VuUmVxdWVzdC5v
cmlnaW4sIHRha2VuUmVxdWVzdC5kZXNjcmlwdG9yLCBzdGF0ZSk7CisgICAgICAgICAgICBpZiAo
c2hvdWxkQ2FjaGUgJiYgc3RhdGUpCisgICAgICAgICAgICAgICAgdXBkYXRlQ2FjaGUodGFrZW5S
ZXF1ZXN0Lm9yaWdpbiwgdGFrZW5SZXF1ZXN0LmRlc2NyaXB0b3IsICpzdGF0ZSk7CiAKICAgICAg
ICAgICAgIHRyeVByb2Nlc3NpbmdSZXF1ZXN0cygpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBl
cm1pc3Npb25Db250cm9sbGVyLmgKaW5kZXggZWRhN2UxOTk3N2ZlMjRjNTJkMDRiOTc4YTZiNzlh
MjM4MDhkMTVmOS4uM2I1NTRiYzkwMWVkNzZjM2UwOGJlZjBhNDM2ZTc1NDYxMDA5NjQ3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1p
c3Npb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmgKQEAgLTQzLDggKzQzLDcgQEAgcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcihXZWJQYWdlJik7CiAKICAg
ICAvLyBXZWJDb3JlOjpQZXJtaXNzaW9uQ29udHJvbGxlcgotICAgIFdlYkNvcmU6OlBlcm1pc3Np
b25TdGF0ZSBxdWVyeShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6UGVybWlzc2lv
bkRlc2NyaXB0b3ImJikgZmluYWw7Ci0gICAgdm9pZCByZXF1ZXN0KFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYmLCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcXVl
cnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9y
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNz
aW9uU3RhdGU+KT4mJikgZmluYWw7CiAgICAgdm9pZCBhZGRPYnNlcnZlcihXZWJDb3JlOjpQZXJt
aXNzaW9uT2JzZXJ2ZXImKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZU9ic2VydmVyKFdlYkNvcmU6
OlBlcm1pc3Npb25PYnNlcnZlciYpIGZpbmFsOwogCkBAIC02Miw3ICs2MSw3IEBAIHByaXZhdGU6
CiAgICAgc3RydWN0IFBlcm1pc3Npb25SZXF1ZXN0IHsKICAgICAgICAgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luIG9yaWdpbjsKICAgICAgICAgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVz
Y3JpcHRvcjsKLSAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQZXJtaXNz
aW9uU3RhdGUpPiBjb21wbGV0aW9uSGFuZGxlcjsKKyAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4pPiBjb21wbGV0aW9u
SGFuZGxlcjsKICAgICAgICAgYm9vbCBpc1dhaXRpbmdGb3JSZXBseSB7IGZhbHNlIH07CiAgICAg
fTsKICAgICBEZXF1ZTxQZXJtaXNzaW9uUmVxdWVzdD4gbV9yZXF1ZXN0czsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450979</attachid>
            <date>2022-02-05 00:55:38 -0800</date>
            <delta_ts>2022-02-08 08:20:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236138-20220205095536.patch</filename>
            <type>text/plain</type>
            <size>38251</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmUyYWM1M2NhZWVjOWNl
MmY1NWJiMmM3NDIyYzhjZjU1ODY4OGRmZi4uNzY4MGUwMjFhYWUxZWY4ZTQ4ZThhNDZmNmI4YTA5
M2QyYzIyY2ViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBx
dWVyeSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgcGVybWlzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBxdWVyeVBlcm1pc3Npb24gdG8g
YmUgYXN5bmMgYXMgaXQgbWF5IHJlcXVpcmUgdG8gY2hlY2sgdG8gVUlQcm9jZXNzLgorICAgICAg
ICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVy
bWlzc2lvbnMuY3BwOgorCiAyMDIyLTAyLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHNo
b3VsZCB0YWtlIGEgcHJlc2VudGF0aW9uVGltZSBhcyBwYXJhbWV0ZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmI4
NDA1ODM2YmQzNjQ3NzI1YTkyNDU3NWY5ZmI3MGEyZDhkYmQzMi4uYmY0NzdhYjgzNmY2YmI1Yjlk
YTA0OTdmYmM4YzhiZjY0ZmRhN2U0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMi0w
Mi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcXVlcnkgY2FtZXJhIGFuZCBtaWNyb3Bob25lIHBlcm1pc3Npb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxMzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IFNQSSB0byBx
dWVyeSBmb3IgcGVybWlzc2lvbiAod2l0aG91dCByZXF1ZXN0aW5nIGFueXRoaW5nIHRvIHVzZXIp
LgorICAgICAgICBVc2UgdGhpcyB0byBpbXBsZW1lbnQgY2FtZXJhL21pY3JvcGhvbmUgcGVybWlz
c2lvbi4KKyAgICAgICAgSW4gY2FzZSBvZiBwZXJtaXNzc2lvbiBwZXJzaXN0ZW50bHkgZGVuaWVk
LCBvbmx5IGV4cG9zZSBpdCBpZiB3ZWIgcGFnZSBhbHJlYWR5IGNhbGxlZCBnZXRVc2VyTWVkaWEu
CisgICAgICAgIEluIGNhc2Ugb2YgcGVybWlzc2lvbiBub3QgcGVyc2lzdGVudGx5IHNldCwgY29t
cHV0ZSB0aGUgcGVybWlzc2lvbiBzdGF0ZSBhY2NvcmRpbmcgcGFzdCBnZXRVc2VyTWVkaWEgcmVx
dWVzdHMuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJt
aXNzaW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQZXJtaXNzaW9uQ29udHJvbGxlci5oOgorCiAyMDIyLTAyLTA0ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBMaWJXZWJSVENDb2RlY3MgU2hhcmVkVmlk
ZW9GcmFtZVdyaXRlcnMgY2FuIGRlYWRsb2NrIGluIGNhc2Ugb2YgR1BVUHJvY2VzcyBjcmFzaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9u
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNz
aW9uQ29udHJvbGxlci5oCmluZGV4IDgyNWY4MGY4YWVmM2EzNzM5YTgwYzBlYWMwYTgwYzQ5ZGE4
MTBlZGIuLjhiNjliMzViZjExMmEzZTg0YzlhNjViYjZhYzhhNWZlODBhMjhiZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbkNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25D
b250cm9sbGVyLmgKQEAgLTM4LDggKzM4LDcgQEAgc3RydWN0IFBlcm1pc3Npb25EZXNjcmlwdG9y
OwogY2xhc3MgUGVybWlzc2lvbkNvbnRyb2xsZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8UGVybWlzc2lvbkNvbnRyb2xsZXI+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QZXJtaXNz
aW9uQ29udHJvbGxlcigpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIFBlcm1pc3Npb25TdGF0ZSBx
dWVyeShDbGllbnRPcmlnaW4mJiwgUGVybWlzc2lvbkRlc2NyaXB0b3ImJikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0KENsaWVudE9yaWdpbiYmLCBQZXJtaXNzaW9uRGVzY3JpcHRvciYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25TdGF0ZSk+JiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcXVlcnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFBlcm1pc3Npb25EZXNj
cmlwdG9yJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxQZXJtaXNzaW9u
U3RhdGU+KT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRPYnNlcnZlcihQZXJtaXNzaW9u
T2JzZXJ2ZXImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU9ic2VydmVyKFBlcm1pc3Np
b25PYnNlcnZlciYpID0gMDsKIHByb3RlY3RlZDoKQEAgLTUxLDggKzUwLDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcj4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEdW1teVBlcm1pc3Npb25Db250cm9sbGVyKTsgfQogcHJpdmF0ZToK
ICAgICBEdW1teVBlcm1pc3Npb25Db250cm9sbGVyKCkgPSBkZWZhdWx0OwotICAgIFBlcm1pc3Np
b25TdGF0ZSBxdWVyeShDbGllbnRPcmlnaW4mJiwgUGVybWlzc2lvbkRlc2NyaXB0b3ImJikgZmlu
YWwgeyByZXR1cm4gUGVybWlzc2lvblN0YXRlOjpEZW5pZWQ7IH0KLSAgICB2b2lkIHJlcXVlc3Qo
Q2xpZW50T3JpZ2luJiYsIFBlcm1pc3Npb25EZXNjcmlwdG9yJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUGVybWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjb21w
bGV0aW9uSGFuZGxlcihQZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7IH0KKyAgICB2b2lkIHF1ZXJ5
KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBQZXJtaXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGVybWlzc2lvblN0YXRlPik+JiYgY2FsbGJh
Y2spIGZpbmFsIHsgY2FsbGJhY2soeyB9KTsgfQogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoUGVybWlz
c2lvbk9ic2VydmVyJikgZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihQZXJtaXNz
aW9uT2JzZXJ2ZXImKSBmaW5hbCB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbnMuY3BwCmluZGV4IDIxMzNiMmE3MGJiODgyNWNmM2Nj
NGRjNjEyMDg5MjM0OTViOThhMGIuLmFmNThmNzM1ODY3ZGE1OGY3OWM5Yjc5YjE0OGY1YzZmNmVk
ODhkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVy
bWlzc2lvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVy
bWlzc2lvbnMuY3BwCkBAIC04OSw4ICs4OSwxOSBAQCB2b2lkIFBlcm1pc3Npb25zOjpxdWVyeShK
U0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBwZXJtaXNzaW9uRGVzY3JpcHRvclZhbHVlLCBETwog
CiAgICAgYXV0byogb3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRv
IG9yaWdpbkRhdGEgPSBvcmlnaW4gPyBvcmlnaW4tPmRhdGEoKSA6IFNlY3VyaXR5T3JpZ2luRGF0
YSB7IH07Ci0gICAgYXV0byBwZXJtaXNzaW9uU3RhdGUgPSBtX2NvbnRyb2xsZXItPnF1ZXJ5KENs
aWVudE9yaWdpbiB7IGNvbnRleHQtPnRvcE9yaWdpbigpLmRhdGEoKSwgb3JpZ2luRGF0YSB9LCBQ
ZXJtaXNzaW9uRGVzY3JpcHRvciB7IHBhcmFtZXRlckRlc2NyaXB0b3IgfSk7Ci0gICAgcHJvbWlz
ZS5yZXNvbHZlKFBlcm1pc3Npb25TdGF0dXM6OmNyZWF0ZSgqY29udGV4dCwgcGVybWlzc2lvblN0
YXRlLCBwYXJhbWV0ZXJEZXNjcmlwdG9yKSk7CisgICAgbV9jb250cm9sbGVyLT5xdWVyeShDbGll
bnRPcmlnaW4geyBjb250ZXh0LT50b3BPcmlnaW4oKS5kYXRhKCksIG9yaWdpbkRhdGEgfSwgUGVy
bWlzc2lvbkRlc2NyaXB0b3IgeyBwYXJhbWV0ZXJEZXNjcmlwdG9yIH0sIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcGFyYW1ldGVyRGVzY3JpcHRvciwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICAgICAg
YXV0byBjb250ZXh0ID0gbV9uYXZpZ2F0b3IgPyBtX25hdmlnYXRvci0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIDogbnVsbHB0cjsKKyAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5n
bG9iYWxPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjb250ZXh0LT5w
b3N0VGFzayhbcGFyYW1ldGVyRGVzY3JpcHRvciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
ICBwZXJtaXNzaW9uU3RhdGUgPSBXVEZNb3ZlKHBlcm1pc3Npb25TdGF0ZSldKGF1dG8mIGNvbnRl
eHQpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAg
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBw
cm9taXNlLnJlc29sdmUoUGVybWlzc2lvblN0YXR1czo6Y3JlYXRlKGNvbnRleHQsICpwZXJtaXNz
aW9uU3RhdGUsIHBhcmFtZXRlckRlc2NyaXB0b3IpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmgKaW5kZXggOTY4NTA1NDkyOWNmZGMzNWU5OGExNWYwNTRmNzgzOWUxZGY0YWUw
OC4uZmJjZTk0NWU0NTg2ZjJkZjdlNzUwZmE5ODA3NjY0NDg3ZGUyODQ0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0Nvb2tpZUNvbnNlbnREZWNpc2lvblJlc3VsdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2RhbENvbnRhaW5lclR5cGVz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QZXJtaXNzaW9uU3RhdGUuaD4KICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjIyLDYgKzIy
Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFdURjo6U3RyaW5nJiBrZXlTeXN0ZW0sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgcGFnZS5y
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKG9yaWdpbi5zZWN1
cml0eU9yaWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KIAorICAgIHZpcnR1
YWwgdm9pZCBxdWVyeVBlcm1pc3Npb24oY29uc3QgV1RGOjpTdHJpbmcmIHBlcm1pc3Npb25OYW1l
LCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgeyBjb21wbGV0aW9uSGFuZGxlcih7IH0pOyB9CisKICNpZiBFTkFCTEUoV0VCWFIpICYmIFBM
QVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbk9uWFJTZXNz
aW9uRmVhdHVyZXMoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZSwgY29uc3QgUGxhdGZvcm1YUjo6
RGV2aWNlOjpGZWF0dXJlTGlzdCYgZ3JhbnRlZCwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpG
ZWF0dXJlTGlzdCYgLyogY29uc2VudFJlcXVpcmVkICovLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZp
Y2U6OkZlYXR1cmVMaXN0JiAvKiBjb25zZW50T3B0aW9uYWwgKi8sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0PiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsgfSAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRYUlNlc3Npb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxpZD4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSB7IGNvbXBsZXRpb25IYW5kbGVyKG5pbCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGQ2YTdhYjY4
MGFjN2FlYzdjODMwZWVkNzU3MTJiYjE2NWFmNWNjYWEuLjBkODY3OGZhNjljMzlkNWVhNDg5MDc5
NzJiYWNlNTRlY2U0ZGU5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTYxLDcgKzE2MSw3IEBAIHN0
cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRv
d0ZlYXR1cmVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGFsbG93ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1Nl
Y3VyaXR5T3JpZ2luKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFt
ZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVybWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9u
KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjAp
KTsKLQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBxdWVyeVBlcm1pc3Np
b246KE5TU3RyaW5nKiluYW1lIGZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiopb3JpZ2luIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1Blcm1pc3Npb25EZWNpc2lvbiBwZXJtaXNzaW9u
U3RhdGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1l
c3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBlZGl0b3JTdGF0ZURpZENoYW5nZTooTlNEaWN0aW9uYXJ5ICopZWRpdG9y
U3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDNkMWU2NGMyMTVh
MjIzZmI3MTY4ZmZkNDJiZTM1ODQ4OGY1MjU0YjEuLmY1Y2ExZDU1Y2Y3NDU3YTgxNzRkNzdkMTMx
MGJjYTM1ZjFkYjM5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmgKQEAgLTE3Myw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHJlcXVlc3RX
ZWJBdXRoZW50aWNhdGlvbk5vR2VzdHVyZShBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKICAgICAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBmaW5hbDsKKyAgICAgICAgdm9pZCBxdWVyeVBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJikgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkRW5h
YmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5hbDsKICAgICAgICAg
dm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXgg
ZjlkNjMxMzljMDNmODE1YTZlNzAwZTliM2NjOTE5M2E3ZDRlZDY0Yy4uN2U1OWFjNzA3N2JhZjM3
NTkyNDc2YTYzNTI2ZDBjZDc1NTVkZTI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xNzQyLDYgKzE3NDIsNDMgQEAgdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVx
dWVzdChXZWIKICAgICB9KS5nZXQoKV07CiB9CiAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnF1ZXJ5UGVybWlzc2lvbihjb25zdCBTdHJpbmcmIHBlcm1pc3Npb25OYW1lLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fdWlE
ZWxlZ2F0ZSkgeworICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU6OlBy
b21wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGRlbGVnYXRlID0gKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7Cisg
ICAgaWYgKCFkZWxlZ2F0ZSkgeworICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpQZXJtaXNzaW9u
U3RhdGU6OlByb21wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIVtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnF1ZXJ5UGVybWlzc2lv
bjpmb3JPcmlnaW46Y29tcGxldGlvbkhhbmRsZXI6KV0pIHsKKyAgICAgICAgY2FsbGJhY2soV2Vi
Q29yZTo6UGVybWlzc2lvblN0YXRlOjpQcm9tcHQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KGRlbGVnYXRlLCBAc2VsZWN0b3IoX3dlYlZpZXc6cXVlcnlQZXJtaXNzaW9uOmZvck9yaWdpbjpj
b21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICBbZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRl
LT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcXVlcnlQZXJtaXNzaW9uOnBlcm1pc3Npb25OYW1lIGZv
ck9yaWdpbjp3cmFwcGVyKG9yaWdpbikgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0o
V0tQZXJtaXNzaW9uRGVjaXNpb24gcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsK
KyAgICAgICAgc3dpdGNoIChwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAgICAgY2FzZSBXS1Blcm1p
c3Npb25EZWNpc2lvblByb21wdDoKKyAgICAgICAgICAgIGNhbGxiYWNrKFdlYkNvcmU6OlBlcm1p
c3Npb25TdGF0ZTo6UHJvbXB0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdL
UGVybWlzc2lvbkRlY2lzaW9uR3JhbnQ6CisgICAgICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpQ
ZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV0tQZXJtaXNzaW9uRGVjaXNpb25EZW55OgorICAgICAgICAgICAgY2FsbGJhY2soV2ViQ29y
ZTo6UGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9KS5nZXQoKV07Cit9CisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZEVu
YWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4oV2ViUGFnZVByb3h5JikKIHsKICAgICBpZiAoIW1f
dWlEZWxlZ2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA5ZjM2
MzEwMTllOGE0Yzk1Y2M1NzJmYWVhY2U0NjFlNjRhOTYzMjU1Li43ZWY2OTdjZTQxNzJlOTUyNTY4
MDFlZDMzNzUyNmFjMzEyNDAwNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKICNpbmNsdWRl
ICJEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNs
dWRlICJNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ci5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCkBAIC0zMzksNyArMzQwLDcg
QEAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICBpZiAoIWdyYW50ZWRSZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKS5p
c1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPmZyYW1lSUQoKSAhPSBmcmFt
ZUlEKQorICAgICAgICBpZiAoZnJhbWVJRCAmJiBncmFudGVkUmVxdWVzdC0+ZnJhbWVJRCgpICE9
IGZyYW1lSUQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoZ3JhbnRlZFJl
cXVlc3QtPnJlcXVpcmVzVmlkZW9DYXB0dXJlKCkpCkBAIC02NzEsNiArNjcyLDM1IEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvclNwZWVjaFJlCiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqZnJhbWUsIFdURk1vdmUoYXBpUmVx
dWVzdGluZ09yaWdpbiksIFdURk1vdmUoYXBpVG9wT3JpZ2luKSwgcmVxdWVzdC5nZXQoKSk7CiB9
CiAKK2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNob3VsZENo
YW5nZURlbmllZFRvUHJvbXB0Rm9yQ2FtZXJhKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKSBj
b25zdAoreworICAgIGlmICghU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdl
LnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSktPmlzU2FtZVNjaGVtZUhvc3RQb3J0KG9yaWdp
bi50b3BPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSkpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgcmV0dXJuICFhbnlPZihtX2RlbmllZFJlcXVlc3RzLCBbXShhdXRvJiByZXF1ZXN0
KSB7IHJldHVybiByZXF1ZXN0LmlzVmlkZW9EZW5pZWQ7IH0pCisgICAgICAgICYmICFhbnlPZiht
X3ByZWdyYW50ZWRSZXF1ZXN0cywgW10oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVxdWVzdC0+
cmVxdWlyZXNWaWRlb0NhcHR1cmUoKTsgfSkKKyAgICAgICAgJiYgIWFueU9mKG1fZ3JhbnRlZFJl
cXVlc3RzLCBbXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LT5yZXF1aXJlc1ZpZGVv
Q2FwdHVyZSgpOyB9KTsKK30KKworYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6c2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHRGb3JNaWNyb3Bob25lKGNvbnN0IENs
aWVudE9yaWdpbiYgb3JpZ2luKSBjb25zdAoreworICAgIGlmICghU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSktPmlzU2Ft
ZVNjaGVtZUhvc3RQb3J0KG9yaWdpbi50b3BPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSkp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuICFhbnlPZihtX2RlbmllZFJlcXVl
c3RzLCBbXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LmlzQXVkaW9EZW5pZWQ7IH0p
CisgICAgICAgICYmICFhbnlPZihtX3ByZWdyYW50ZWRSZXF1ZXN0cywgW10oYXV0byYgcmVxdWVz
dCkgeyByZXR1cm4gcmVxdWVzdC0+cmVxdWlyZXNBdWRpb0NhcHR1cmUoKTsgfSkKKyAgICAgICAg
JiYgIWFueU9mKG1fZ3JhbnRlZFJlcXVlc3RzLCBbXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiBy
ZXF1ZXN0LT5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpOyB9KTsKK30KKworYm9vbCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2hvdWxkQ2hhbmdlUHJvbXB0VG9HcmFudEZv
ckNhbWVyYShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikgY29uc3QKK3sKKyAgICByZXR1cm4g
c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoeyB9LCBvcmlnaW4uY2xpZW50T3JpZ2luLnNlY3VyaXR5
T3JpZ2luKCkuZ2V0KCksIG9yaWdpbi50b3BPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwg
ZmFsc2UsIHRydWUpOworfQorCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpzaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50Rm9yTWljcm9waG9uZShjb25zdCBDbGll
bnRPcmlnaW4mIG9yaWdpbikgY29uc3QKK3sKKyAgICByZXR1cm4gc2VhcmNoRm9yR3JhbnRlZFJl
cXVlc3QoeyB9LCBvcmlnaW4uY2xpZW50T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIG9y
aWdpbi50b3BPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgdHJ1ZSwgZmFsc2UpOworfQog
CiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5Jiwg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2
NzRiYWI0ZGI3YzljNjRkZWQ4NTc4NzQxZGJkMmFiOTk2ZGM0MDY1Li5hNmM2YTdiZTgyYzAzYWQ4
ZTZkNDcwMmU0ZmIyZmQ0OGM0NDBiYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUHJvZHVjZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Blcm1p
c3Npb25EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QZXJtaXNzaW9uU3RhdGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5oPgpAQCAtMzUsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBDYXB0dXJlRGV2aWNlOworc3RydWN0IENsaWVudE9yaWdpbjsKIHN0cnVjdCBN
ZWRpYUNvbnN0cmFpbnRzOwogc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKIGNsYXNzIFNlY3Vy
aXR5T3JpZ2luOwpAQCAtMTExLDYgKzExNCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgaXNT
Y3JlZW5DYXB0dXJlRGVuaWVkOwogICAgIH07CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlBlcm1pc3Npb25TdGF0ZT4gZmlsdGVyUGVybWlzc2lvblF1ZXJ5KGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYsIGNvbnN0IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiwgV2ViQ29y
ZTo6UGVybWlzc2lvblN0YXRlKTsKKworICAgIGJvb2wgc2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9t
cHRGb3JDYW1lcmEoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikgY29uc3Q7CisgICAgYm9v
bCBzaG91bGRDaGFuZ2VEZW5pZWRUb1Byb21wdEZvck1pY3JvcGhvbmUoY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJikgY29uc3Q7CisgICAgYm9vbCBzaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50
Rm9yQ2FtZXJhKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGNvbnN0OworICAgIGJvb2wg
c2hvdWxkQ2hhbmdlUHJvbXB0VG9HcmFudEZvck1pY3JvcGhvbmUoY29uc3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJikgY29uc3Q7CisKIHByaXZhdGU6CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGU0OTkzNWMzMjVmNjlmMzQzNDQwY2FhMGFk
ZDdiZmZlMWMwMDUyODIuLjc5ZmI4MTU5NDUwNjU3YTQ1MWU3NmMxNTA0ZDc2Y2JhNWRhYzBiN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODYxNiwxMCAr
ODYxNiw0MSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmV2b2tlR2VvbG9jYXRpb25BdXRob3JpemF0
aW9uVG9rZW4oY29uc3QgU3RyaW5nJiBhdXRob3JpemF0aQogICAgIG1fZ2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIucmV2b2tlQXV0aG9yaXphdGlvblRva2VuKGF1dGhvcml6YXRp
b25Ub2tlbik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UGVybWlzc2lvbihjb25z
dCBDbGllbnRPcmlnaW4mLCBjb25zdCBQZXJtaXNzaW9uRGVzY3JpcHRvciYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUGVybWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2ViUGFnZVByb3h5OjpxdWVyeVBlcm1pc3Npb24oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRP
cmlnaW4sIGNvbnN0IFBlcm1pc3Npb25EZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGVybWlzc2lvblN0YXRlPiwgYm9vbCBzaG91bGRD
YWNoZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgLy8gRklYTUU6IFNob3cgYSBwcm9t
cHQgZm9yIHVzZXIgaW5wdXQuCi0gICAgY29tcGxldGlvbkhhbmRsZXIoUGVybWlzc2lvblN0YXRl
OjpHcmFudGVkKTsKKyAgICBib29sIHNob3VsZENoYW5nZURlbmllZFRvUHJvbXB0ID0gdHJ1ZTsK
KyAgICBib29sIHNob3VsZENoYW5nZVByb21wdFRvR3JhbnQgPSBmYWxzZTsKKyAgICBTdHJpbmcg
bmFtZTsKKyAgICBpZiAoZGVzY3JpcHRvci5uYW1lID09IFBlcm1pc3Npb25OYW1lOjpDYW1lcmEp
IHsKKyAgICAgICAgbmFtZSA9ICJjYW1lcmEiX3M7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICAgICAgc2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHQgPSB1c2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS5zaG91bGRDaGFuZ2VEZW5pZWRUb1Byb21wdEZvckNhbWVyYShjbGll
bnRPcmlnaW4pOworICAgICAgICBzaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50ID0gdXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc2hvdWxkQ2hhbmdlUHJvbXB0VG9HcmFudEZvckNh
bWVyYShjbGllbnRPcmlnaW4pOworI2VuZGlmCisgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yLm5h
bWUgPT0gUGVybWlzc2lvbk5hbWU6Ok1pY3JvcGhvbmUpIHsKKyAgICAgICAgbmFtZSA9ICJtaWNy
b3Bob25lIl9zOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIHNob3VsZENoYW5n
ZURlbmllZFRvUHJvbXB0ID0gdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc2hv
dWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHRGb3JNaWNyb3Bob25lKGNsaWVudE9yaWdpbik7CisgICAg
ICAgIHNob3VsZENoYW5nZVByb21wdFRvR3JhbnQgPSB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoKS5zaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50Rm9yTWljcm9waG9uZShjbGllbnRP
cmlnaW4pOworI2VuZGlmCisgICAgfQorICAgIGlmIChuYW1lLmlzTnVsbCgpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBvcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoY2xpZW50T3Jp
Z2luLnRvcE9yaWdpbik7CisgICAgbV91aUNsaWVudC0+cXVlcnlQZXJtaXNzaW9uKG5hbWUsIG9y
aWdpbiwgW2NsaWVudE9yaWdpbiwgc2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHQsIHNob3VsZENo
YW5nZVByb21wdFRvR3JhbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpIHsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgZmFsc2UpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICgqcmVzdWx0ID09IFBlcm1pc3Npb25TdGF0
ZTo6RGVuaWVkICYmIHNob3VsZENoYW5nZURlbmllZFRvUHJvbXB0KQorICAgICAgICAgICAgcmVz
dWx0ID0gUGVybWlzc2lvblN0YXRlOjpQcm9tcHQ7CisgICAgICAgIGVsc2UgaWYgKCpyZXN1bHQg
PT0gUGVybWlzc2lvblN0YXRlOjpQcm9tcHQgJiYgc2hvdWxkQ2hhbmdlUHJvbXB0VG9HcmFudCkK
KyAgICAgICAgICAgIHJlc3VsdCA9IFBlcm1pc3Npb25TdGF0ZTo6R3JhbnRlZDsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKnJlc3VsdCwgZmFsc2UpOworICAgIH0pOwogfQogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggNTA3ZWFjOGE5NjUyYWUwZmUwYTEzYjIyNmRlZmY4ODJkZWMzOGYzMS4uMTk5MTVkNDQ2NWEz
MWY5YjE4NDc4YmFmNzVhNTkwMDM5MmNiY2FkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTIxOTcsNyArMjE5Nyw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShHZW9sb2NhdGlvbklkZW50aWZpZXIs
IEZyYW1lSW5mb0RhdGEmJik7CiAgICAgdm9pZCByZXZva2VHZW9sb2NhdGlvbkF1dGhvcml6YXRp
b25Ub2tlbihjb25zdCBTdHJpbmcmIGF1dGhvcml6YXRpb25Ub2tlbik7Ci0gICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBXZWJDb3Jl
OjpQZXJtaXNzaW9uRGVzY3JpcHRvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
UGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBxdWVyeVBlcm1pc3Npb24oY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3Im
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lv
blN0YXRlPiwgYm9vbCBzaG91bGRDYWNoZSk+JiYpOwogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpCiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvV2ViVmlldyhVc2VyTWVzc2FnZSYm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCAxNWNkMGUzZDU5NjhiYzY2MTdlYTVjNGEyOGYwMTdhMTE0ZGFiOTViLi40NDA5NDgx
NmE0MzUzYTVhNTRhODhjYjA4NGQ3NWY3ZWM4OGMxNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC02MDgsNyArNjA4LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBNb2RlbEVsZW1lbnRTZXRJc011dGVkKHN0
cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIGJvb2wgaXNNdXRl
ZCkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKICNlbmRpZgogCi0gICAgcmVxdWVzdFBlcm1pc3Np
b24oc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpQ
ZXJtaXNzaW9uRGVzY3JpcHRvciBkZXNjcmlwdG9yKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6
OlBlcm1pc3Npb25TdGF0ZSBzdGF0ZSkgQXN5bmMKKyAgICBRdWVyeVBlcm1pc3Npb24oc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpQZXJtaXNzaW9u
RGVzY3JpcHRvciBkZXNjcmlwdG9yKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNz
aW9uU3RhdGU+IHN0YXRlLCBib29sIHNob3VsZENhY2hlKSBBc3luYwogCiAjaWYgRU5BQkxFKEFQ
UExFX1BBWV9BTVNfVUkpCiAgICAgU3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihVUkwgb3JpZ2lu
YXRpbmdVUkwsIHN0cnVjdCBXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdCByZXF1ZXN0KSAt
PiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Np
b25Db250cm9sbGVyLmNwcAppbmRleCBkNjAxODIxZjBhODVjMDMyMTAwM2ZlMGRjZWQ3OTc2ZDll
MjBlZTVkLi4zNzkwYzEyOGNlNjIxMTlkZTgyMTA4Nzg3ODA0YzJmZDUzMjY3N2FjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lv
bkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxlci5jcHAKQEAgLTQzLDE4ICs0MywxMCBAQCBXZWJQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6V2ViUGVybWlzc2lvbkNvbnRyb2xsZXIoV2ViUGFnZSYgcGFn
ZSkKIHsKIH0KIAotV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlIFdlYlBlcm1pc3Npb25Db250cm9s
bGVyOjpxdWVyeShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFdlYkNvcmU6OlBlcm1p
c3Npb25EZXNjcmlwdG9yJiYgZGVzY3JpcHRvcikKK3ZvaWQgV2ViUGVybWlzc2lvbkNvbnRyb2xs
ZXI6OnF1ZXJ5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgV2ViQ29yZTo6UGVybWlz
c2lvbkRlc2NyaXB0b3ImJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpQZXJtaXNzaW9u
U3RhdGU6OkRlbmllZDsKLQotICAgIHJldHVybiBxdWVyeUNhY2hlKFdURk1vdmUob3JpZ2luKSwg
V1RGTW92ZShkZXNjcmlwdG9yKSk7Ci19Ci0KLXZvaWQgV2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6
OnJlcXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luLCBXZWJDb3JlOjpQZXJtaXNz
aW9uRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6UGVybWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoIW1f
cGFnZSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlBlcm1pc3Np
b25TdGF0ZTo6RGVuaWVkKTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7
CiAKICAgICBhdXRvIGNhY2hlZFJlc3VsdCA9IHF1ZXJ5Q2FjaGUob3JpZ2luLCBkZXNjcmlwdG9y
KTsKICAgICBpZiAoY2FjaGVkUmVzdWx0ICE9IFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6UHJv
bXB0KQpAQCAtMTEyLDEzICsxMDQsMTQgQEAgdm9pZCBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6
dHJ5UHJvY2Vzc2luZ1JlcXVlc3RzKCkKICAgICAgICAgfQogCiAgICAgICAgIGN1cnJlbnRSZXF1
ZXN0LmlzV2FpdGluZ0ZvclJlcGx5ID0gdHJ1ZTsKLSAgICAgICAgbV9wYWdlLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFBlcm1pc3Npb24oY3VycmVu
dFJlcXVlc3Qub3JpZ2luLCBjdXJyZW50UmVxdWVzdC5kZXNjcmlwdG9yKSwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGF1dG8gc3RhdGUpIHsKKyAgICAgICAgbV9wYWdlLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UXVlcnlQZXJtaXNzaW9u
KGN1cnJlbnRSZXF1ZXN0Lm9yaWdpbiwgY3VycmVudFJlcXVlc3QuZGVzY3JpcHRvciksIFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShhdXRvIHN0YXRlLCBib29sIHNob3VsZENh
Y2hlKSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICAgICAgYXV0byB0YWtlblJlcXVlc3QgPSBtX3JlcXVlc3RzLnRha2VGaXJz
dCgpOwogICAgICAgICAgICAgdGFrZW5SZXF1ZXN0LmNvbXBsZXRpb25IYW5kbGVyKHN0YXRlKTsK
LSAgICAgICAgICAgIHVwZGF0ZUNhY2hlKHRha2VuUmVxdWVzdC5vcmlnaW4sIHRha2VuUmVxdWVz
dC5kZXNjcmlwdG9yLCBzdGF0ZSk7CisgICAgICAgICAgICBpZiAoc2hvdWxkQ2FjaGUgJiYgc3Rh
dGUpCisgICAgICAgICAgICAgICAgdXBkYXRlQ2FjaGUodGFrZW5SZXF1ZXN0Lm9yaWdpbiwgdGFr
ZW5SZXF1ZXN0LmRlc2NyaXB0b3IsICpzdGF0ZSk7CiAKICAgICAgICAgICAgIHRyeVByb2Nlc3Np
bmdSZXF1ZXN0cygpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVy
LmgKaW5kZXggZWRhN2UxOTk3N2ZlMjRjNTJkMDRiOTc4YTZiNzlhMjM4MDhkMTVmOS4uM2I1NTRi
YzkwMWVkNzZjM2UwOGJlZjBhNDM2ZTc1NDYxMDA5NjQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Np
b25Db250cm9sbGVyLmgKQEAgLTQzLDggKzQzLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBX
ZWJQZXJtaXNzaW9uQ29udHJvbGxlcihXZWJQYWdlJik7CiAKICAgICAvLyBXZWJDb3JlOjpQZXJt
aXNzaW9uQ29udHJvbGxlcgotICAgIFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZSBxdWVyeShXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3ImJikgZmlu
YWw7Ci0gICAgdm9pZCByZXF1ZXN0KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpQ
ZXJtaXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBl
cm1pc3Npb25TdGF0ZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcXVlcnkoV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiYsIFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJikgZmlu
YWw7CiAgICAgdm9pZCBhZGRPYnNlcnZlcihXZWJDb3JlOjpQZXJtaXNzaW9uT2JzZXJ2ZXImKSBm
aW5hbDsKICAgICB2b2lkIHJlbW92ZU9ic2VydmVyKFdlYkNvcmU6OlBlcm1pc3Npb25PYnNlcnZl
ciYpIGZpbmFsOwogCkBAIC02Miw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IFBlcm1p
c3Npb25SZXF1ZXN0IHsKICAgICAgICAgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbjsKICAg
ICAgICAgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKLSAgICAgICAg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUpPiBjb21wbGV0
aW9uSGFuZGxlcjsKKyAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4pPiBjb21wbGV0aW9uSGFuZGxlcjsKICAgICAgICAg
Ym9vbCBpc1dhaXRpbmdGb3JSZXBseSB7IGZhbHNlIH07CiAgICAgfTsKICAgICBEZXF1ZTxQZXJt
aXNzaW9uUmVxdWVzdD4gbV9yZXF1ZXN0czsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNzAxOTgzMmUwNmIzNTcwMDkwYWRlMDVkNTlkNmIyZmZi
NDFiMDE5Li5mYTkzNjI5NjBlYzljZDdmNzUyZDNjZTMwMGQ0ZDYwZWE4MmY3MjIzIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjItMDItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IHRvIHF1ZXJ5IGNhbWVyYSBhbmQgbWljcm9waG9uZSBwZXJtaXNzaW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTM4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVV
SURlbGVnYXRlLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlVUlEZWxlZ2F0ZS5tbToKKwogMjAyMi0wMi0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHVzaW5nIFNUSVggVHdvIGluIGxheW91
dCB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZDcxMDE4OGI3MDgzYTg3OTY1YWFi
NTRkZjRhMjFjMjI5MDQ5YTk5Li4yM2NkY2FmN2ExMzgyZjljZjViMGNmZDAzMWQ3OThkZmQ2MDI5
ZDhiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTQsNiArNTQsNyBAQAogCQkwNzQ5OTQ0
MjFFQTUwMzRCMDAwREE0NEYgLyogb25kZXZpY2VjaGFuZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0RDE5QUY3QkVGMDAy
RUJBQjYgLyogb25kZXZpY2VjaGFuZ2UuaHRtbCAqLzsgfTsKIAkJMDc0OTk0NDIxRUE1MDM0QjAw
MERBNDVFIC8qIGdldFVzZXJNZWRpYUF1ZGlvVmlkZW9DYXB0dXJlLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGNEQxOUFGN0JF
RjAwMkVCQUM1IC8qIGdldFVzZXJNZWRpYUF1ZGlvVmlkZW9DYXB0dXJlLmh0bWwgKi87IH07CiAJ
CTA3NDk5NDUyMUVBNTAzNEIwMDBEQTQ0RSAvKiBnZXRVc2VyTWVkaWEyLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFCQUY0RTIyNUFD
OURCODAwRDgyRjMyIC8qIGdldFVzZXJNZWRpYTIuaHRtbCAqLzsgfTsKKwkJMDc0OTk0NTIxRUE1
MDM0QjAwMERBNDZFIC8qIGdldFVzZXJNZWRpYVBlcm1pc3Npb24uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTk4NTI0RjI3QUQ3Qjcw
MDA1NDc3QjcgLyogZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sICovOyB9OwogCQkwNzVBOUNG
NTI2MTc3MjE4MDA2REZBM0EgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JUZXN0Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1QTlDRjQyNjE3NzIx
NzAwNkRGQTNBIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5tbSAqLzsgfTsKIAkJMDc2
RTUwN0YxRjQ1MTNENjAwNkU5RjVBIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RTUwN0UxRjQ1MDMxRTAwNkU5RjVBIC8qIExv
Z2dpbmcuY3BwICovOyB9OwogCQkwNzdBNUFGMzIzMDYzOEE2MDBBNzEwNUMgLyogQWNjZXNzaWJp
bGl0eVRlc3RQbHVnaW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzQ2NjQ1ODIyRkY2MzA1MDBFMzQ1MUEgLyogQWNjZXNzaWJpbGl0eVRlc3RQbHVn
aW4ubW0gKi87IH07CkBAIC0xMzYzLDYgKzEzNjQsNyBAQAogCQkJCTQxNjYxQzY2MjM1NUU4NUUw
MEQzM0MyNyAvKiBnZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQkwNzQ5OTQ0MjFFQTUwMzRCMDAwREE0NEUgLyogZ2V0VXNlck1lZGlhLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMDc0OTk0NTIxRUE1MDM0QjAwMERBNDRFIC8qIGdldFVz
ZXJNZWRpYTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQkwNzQ5OTQ1MjFFQTUwMzRC
MDAwREE0NkUgLyogZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTA3NDk5NDQyMUVBNTAzNEIwMDBEQTQ1RSAvKiBnZXRVc2VyTWVkaWFBdWRpb1Zp
ZGVvQ2FwdHVyZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NkEwOTVCMUVEOEE2
RTYwMEQ0QUE1NSAvKiBnaWYtYW5kLWZpbGUtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1NzMyNTVBNTIyMTM5QkM3MDAzOTZBRTggLyogaGVsbG93b3JsZC53ZWJhcmNoaXZl
IGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTk1Niw2ICsxOTU4LDcgQEAKIAkJNDE4ODJGMDIy
MTAxMEE3MDAwMkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1ByZVdhcm1pbmcubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxOEZDQkQ1MjcwNzA2NjEwMEY5NkVDQSAvKiBQdXNoQVBJLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHVzaEFQSS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NzNCNUMxQUYyMjg3NTAwNkM3QjM2IC8qIFNo
YXJlZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFy
ZWRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTk4NTI0RjI3QUQ3
QjcwMDA1NDc3QjcgLyogZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MUJBRjRFMjI1QUM5REI4MDBEODJGMzIgLyogZ2V0VXNlck1lZGlh
Mi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gZ2V0VXNlck1lZGlhMi5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUU2N0E4NDI1RDE2RTgzMDA3QjBBNEMgLyog
U1RVTk1lc3NhZ2VQYXJzaW5nVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTVFVOTWVzc2FnZVBhcnNpbmdUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQwNzdCQjAyMzE0NDlEMjAwMTc5RTJEIC8qIERhdGFEZXRlY3RvcnNUZXN0SU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVjdG9y
c1Rlc3RJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00Njg0LDYgKzQ2ODcs
NyBAQAogCQkJCTQxNjYxQzY1MjM1NUQ5OEIwMEQzM0MyNyAvKiBnZXRVc2VyTWVkaWEtd2ViYXVk
aW8uaHRtbCAqLywKIAkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjUgLyogZ2V0VXNlck1lZGlh
Lmh0bWwgKi8sCiAJCQkJNDFCQUY0RTIyNUFDOURCODAwRDgyRjMyIC8qIGdldFVzZXJNZWRpYTIu
aHRtbCAqLywKKwkJCQk0MTk4NTI0RjI3QUQ3QjcwMDA1NDc3QjcgLyogZ2V0VXNlck1lZGlhUGVy
bWlzc2lvbi5odG1sICovLAogCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFDNSAvKiBnZXRVc2Vy
TWVkaWFBdWRpb1ZpZGVvQ2FwdHVyZS5odG1sICovLAogCQkJCUJDQkQzNzJFMTI1QUJCRTYwMEQy
QzI5RiAvKiBpY29uLnBuZyAqLywKIAkJCQkxQ0M4MENFOTI0NzRGMUY3MDA0REM0ODkgLyogaWRl
bXBvdGVudC1tb2RlLWF1dG9zaXppbmctb25seS1ob25vcnMtcGVyY2VudGFnZXMuaHRtbCAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQpp
bmRleCA2NWJmYmRlZjA4MjI0NjA4MjNjZmQ2MWFhMzcyODc0OTViMmIxZGE0Li40M2Y2ZDZkYjU3
NDk5NjNlY2MxMDEzNzhmMjYyNGRmOTc3YjNhMTNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCkBAIC05NzIsNiArOTcyLDkxIEBAIFRF
U1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCiAgICAgW2RlbGVnYXRlIHdhaXRV
bnRpbFByb21wdGVkXTsKIH0KIAorCitzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqcGVy
bWlzc2lvbnNBUElFbmFibGVkRXhwZXJpbWVudGFsRmVhdHVyZSgpCit7CisgICAgc3RhdGljIFJl
dGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJlPiB0aGVGZWF0dXJlOworICAgIGlmICh0aGVG
ZWF0dXJlKQorICAgICAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKKworICAgIE5TQXJyYXkg
KmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBm
b3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAiUGVybWlzc2lvbnNBUElFbmFibGVkIl0pIHsK
KyAgICAgICAgICAgIHRoZUZlYXR1cmUgPSBmZWF0dXJlOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7Cit9CisKK1RFU1Qo
V2ViS2l0MiwgQ2FwdHVyZVBlcm1pc3Npb24pCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9u
KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6cGVybWlzc2lvbnNBUElFbmFi
bGVkRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBh
ZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxl
cjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CisKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAg
ZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1l
ZGlhUGVybWlzc2lvbiJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgZG9uZSA9IGZhbHNlOworCisgICAgW2RlbGVnYXRlIHNldEF1ZGlvRGVjaXNpb246V0tQZXJt
aXNzaW9uRGVjaXNpb25Qcm9tcHRdOworICAgIFtkZWxlZ2F0ZSBzZXRWaWRlb0RlY2lzaW9uOldL
UGVybWlzc2lvbkRlY2lzaW9uUHJvbXB0XTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiY2hlY2tQZXJtaXNzaW9uKCdtaWNyb3Bob25lJywgJ3Byb21wdCcpIl07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7
CisKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2hlY2tQZXJt
aXNzaW9uKCdjYW1lcmEnLCAncHJvbXB0JykiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFtkZWxlZ2F0ZSBzZXRBdWRpb0Rl
Y2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3JhbnRdOworICAgIFtkZWxlZ2F0ZSBzZXRWaWRl
b0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3JhbnRdOworICAgIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Npb24oJ21pY3JvcGhvbmUnLCAn
Z3JhbnRlZCcpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImNoZWNrUGVybWlzc2lvbignY2FtZXJhJywgJ2dyYW50ZWQnKSJdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgLy8gQWx0aG91
Z2ggRGVueSwgd2UgZXhwZWN0IHByb21wdCBpcyBleHBvc2VkIHNpbmNlIHdlIGRvIG5vdCB0cnVz
dCB0aGUgcGFnZSB0byBjYWxsIGdldFVzZXJNZWRpYS4KKyAgICBbZGVsZWdhdGUgc2V0QXVkaW9E
ZWNpc2lvbjpXS1Blcm1pc3Npb25EZWNpc2lvbkRlbnldOworICAgIFtkZWxlZ2F0ZSBzZXRWaWRl
b0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uRGVueV07CisgICAgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNoZWNrUGVybWlzc2lvbignbWljcm9waG9uZScsICdw
cm9tcHQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9u
ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJj
aGVja1Blcm1pc3Npb24oJ2NhbWVyYScsICdwcm9tcHQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgLy8gTm93IHRoYXQg
d2UgZ2V0VXNlck1lZGlhIGhhcyBiZWVuIGNhbGxlZCwgd2UgY2FuIGdvIHdpdGggZGVueS4KKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZVZpZGVvKCki
XTsKKyAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0ZWRdOworICAgIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Npb24oJ21pY3JvcGhvbmUnLCAn
cHJvbXB0JykiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
Y2hlY2tQZXJtaXNzaW9uKCdjYW1lcmEnLCAnZGVuaWVkJykiXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjYXB0dXJlQXVkaW8oKSJdOworICAgIFtkZWxl
Z2F0ZSB3YWl0VW50aWxQcm9tcHRlZF07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAImNoZWNrUGVybWlzc2lvbignbWljcm9waG9uZScsICdkZW5pZWQnKSJdOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Np
b24oJ2NhbWVyYScsICdkZW5pZWQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU5NTg2Y2MzNWU5YjE1Zjg5Mzc4NjM5MmUwODdjMmFkOTQwZGYzOWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRV
c2VyTWVkaWFQZXJtaXNzaW9uLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGxldCBz
dHJlYW0gPSBudWxsOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdG9wKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB7
IHRyYWNrLnN0b3AoKSB9KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
Y2FwdHVyZUF1ZGlvKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KS50aGVuKHMgPT4gc3RyZWFt
ID0gcyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhcHR1cmVWaWRl
bygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkudGhlbihzID0+IHN0cmVhbSA9IHMpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja1Blcm1pc3Npb24obmFtZSwg
ZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnko
eyBuYW1lIH0pLnRoZW4oKHN0YXR1cykgPT4geworICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoZXhwZWN0ZWQgPT0gc3RhdHVz
LnN0YXRlICA/ICJQQVNTIiA6ICgiRkFJTEVELCBleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1
dCBnb3QgIiArIHN0YXR1cy5zdGF0ZSkpOworICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUGVybWlzc2lvbiBx
dWVyeSBmYWlsZWQgd2l0aCAiICsgZXJyb3IpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICA8
L3NjcmlwdD4KKyAgICA8aGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0id2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCdQQVNTJykiPgorICAgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZVVJRGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZVVJRGVsZWdhdGUuaAppbmRleCBjZWU1MTVhN2Q2OGYwNjE3ZDRkMjRmODNjNjVkYzc0YTQx
NzRlNjgwLi5iNjQzMzFjYWI4OTk4NGVmM2QzZDI4MTBmOWM4NjA0OGFhMTc3NDk2IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRl
LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlVUlEZWxl
Z2F0ZS5oCkBAIC01MCw2ICs1MCw3IEBACiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZVBlcm1pc3Npb25Gb3JPcmlnaW46KFdLU2VjdXJpdHlP
cmlnaW4gKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSB0eXBl
OihXS01lZGlhQ2FwdHVyZVR5cGUpdHlwZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVy
bWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0RGlzcGxheUNhcHR1cmVQ
ZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGluaXRpYXRlZEJ5
RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgd2l0aFN5c3RlbUF1ZGlvOihCT09MKXdpdGhTeXN0
ZW1BdWRpbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLRGlzcGxheUNhcHR1cmVQZXJtaXNz
aW9uRGVjaXNpb24gZGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcXVlcnlQZXJtaXNzaW9uOihOU1N0cmluZyopIG5hbWUgZm9y
T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShXS1Blcm1pc3Npb25EZWNpc2lvbiBzdGF0ZSkpY29tcGxldGlvbkhhbmRsZXI7CiAKIEBl
bmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZVVJRGVsZWdhdGUubW0KaW5kZXggMTc0ZjM2OTkzYTE5ODRjOTUyNmU5OWYxM2VlNjE5YjIz
YzIzMDA0MC4uMzkxMmExNWNiZTAyNTIzMGI2ZmZlZGJhYWRhZmNlMzA5MDQ4ZWUyMCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0
ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVVSURl
bGVnYXRlLm1tCkBAIC03Miw2ICs3MiwxOSBAQAogICAgIF9nZXREaXNwbGF5TWVkaWFEZWNpc2lv
biA9IGRlY2lzaW9uOwogfQogCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHF1ZXJ5UGVybWlzc2lvbjooTlNTdHJpbmcqKSBuYW1lIGZvck9yaWdpbjooV0tTZWN1cml0eU9y
aWdpbiAqKW9yaWdpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tQZXJtaXNzaW9uRGVj
aXNpb24gc3RhdGUpKWNvbXBsZXRpb25IYW5kbGVyIHsKKyAgICBpZiAoW25hbWUgaXNFcXVhbFRv
OkAiY2FtZXJhIl0pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoX3ZpZGVvRGVjaXNpb24p
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChbbmFtZSBpc0VxdWFsVG86QCJtaWNy
b3Bob25lIl0pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoX2F1ZGlvRGVjaXNpb24pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdLUGVybWlzc2lvbkRlY2lzaW9uRGVueSk7Cit9CisKIC0gKHZvaWQp
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlUGVybWlzc2lv
bkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBpbml0aWF0ZWRCeUZyYW1lOihX
S0ZyYW1lSW5mbyAqKWZyYW1lIHR5cGU6KFdLTWVkaWFDYXB0dXJlVHlwZSl0eXBlIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pKWRlY2lzaW9u
SGFuZGxlciB7CiAgICAgKytfbnVtYmVyT2ZQcm9tcHRzOwogICAgIF93YXNQcm9tcHRlZCA9IHRy
dWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451252</attachid>
            <date>2022-02-08 08:20:08 -0800</date>
            <delta_ts>2022-02-10 08:05:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236138-20220208172006.patch</filename>
            <type>text/plain</type>
            <size>72773</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFjNzE3Nzc2MDQzMzli
NmJkMDllY2I5ZGEzNTVhMjkyODRkNzg1YS4uOGRlODVhYWUyYzA5MDM1NWIyNWE0MzBkNTkwNDA5
ZTA0ZDI5NmZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBx
dWVyeSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgcGVybWlzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVcGRhdGUgcXVlcnlQZXJtaXNzaW9uIHRvIGJl
IGFzeW5jIGFzIGl0IG1heSByZXF1aXJlIHRvIGNoZWNrIHRvIFVJUHJvY2Vzcy4KKyAgICAgICAg
Q292ZXJlZCBieSBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVy
bWlzc2lvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1p
c3Npb25zLmNwcDoKKwogMjAyMi0wMi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgU2V0dGxpbmcgb2YgYSBmZXRjaCBwcm9taXNlIHNob3VsZCBiZSBkZWxh
eWVkIGluIGNhc2UgcGFnZSBpcyBlbnRlcmluZyBwYWdlIGNhY2hlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhN2Vm
NzY3YzkxY2RlODM3NWQ1Y2IyMzZhYWQ5OGQ3NjM1MmI2NWIuLjdhMWJiNmE4MjM1NjNjN2Y1Yjlj
ZTg3OTZjNGRlYzQyNWZiY2JiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjItMDIt
MDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IHRvIHF1ZXJ5IGNhbWVyYSBhbmQgbWljcm9waG9uZSBwZXJtaXNzaW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTM4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBuZXcgU1BJIHRvIHF1ZXJ5
IGZvciBwZXJtaXNzaW9uICh3aXRob3V0IHJlcXVlc3RpbmcgYW55dGhpbmcgdG8gdXNlcikuCisg
ICAgICAgIFVzZSB0aGlzIHRvIGltcGxlbWVudCBjYW1lcmEvbWljcm9waG9uZSBwZXJtaXNzaW9u
LgorICAgICAgICBJbiBjYXNlIG9mIHBlcm1pc3NzaW9uIHBlcnNpc3RlbnRseSBkZW5pZWQsIG9u
bHkgZXhwb3NlIGl0IGlmIHdlYiBwYWdlIGFscmVhZHkgY2FsbGVkIGdldFVzZXJNZWRpYS4KKyAg
ICAgICAgSW4gY2FzZSBvZiBwZXJtaXNzaW9uIG5vdCBwZXJzaXN0ZW50bHkgc2V0LCBjb21wdXRl
IHRoZSBwZXJtaXNzaW9uIHN0YXRlIGFjY29yZGluZyBwYXN0IGdldFVzZXJNZWRpYSByZXF1ZXN0
cy4KKyAgICAgICAgQWxzbyBhZGQgZ2VvbG9jYXRpb24gbWFwcGluZyBhcyBhcHBsaWNhdGlvbnMg
bWlnaHQgd2FudCB0byBzdXBwb3J0IGl0IGFuZCBpdCBtYWtlcyBleGlzdGluZyBXUFQgdGVzdHMg
aGFwcHkuCisgICAgICAgIEFkZCBDIEFQSSBhcyB3ZWxsIHNvIHRoYXQgV1RSIGNhbiBjb250cm9s
IHBlcm1pc3Npb24gcXVlcnlpbmcuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdC4KKwor
ICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLQmFzZS5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVu
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1NwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbkNhbGxiYWNrLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRy
b2xsZXIuaDoKKwogMjAyMi0wMi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTGliV2ViUlRDQ29kZWNzIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzIGNhbiBk
ZWFkbG9jayBpbiBjYXNlIG9mIEdQVVByb2Nlc3MgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbkNvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbkNvbnRyb2xsZXIuaAppbmRl
eCA4MjVmODBmOGFlZjNhMzczOWE4MGMwZWFjMGE4MGM0OWRhODEwZWRiLi44YjY5YjM1YmYxMTJh
M2U4NGM5YTY1YmI2YWM4YTVmZTgwYTI4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uQ29udHJvbGxlci5oCkBAIC0zOCw4
ICszOCw3IEBAIHN0cnVjdCBQZXJtaXNzaW9uRGVzY3JpcHRvcjsKIGNsYXNzIFBlcm1pc3Npb25D
b250cm9sbGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBlcm1pc3Npb25Db250cm9s
bGVyPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UGVybWlzc2lvbkNvbnRyb2xsZXIoKSA9IGRl
ZmF1bHQ7Ci0gICAgdmlydHVhbCBQZXJtaXNzaW9uU3RhdGUgcXVlcnkoQ2xpZW50T3JpZ2luJiYs
IFBlcm1pc3Npb25EZXNjcmlwdG9yJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdChD
bGllbnRPcmlnaW4mJiwgUGVybWlzc2lvbkRlc2NyaXB0b3ImJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQZXJtaXNzaW9uU3RhdGUpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHF1ZXJ5KFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYmLCBQZXJtaXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UGVybWlzc2lvblN0YXRlPik+JiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkT2JzZXJ2ZXIoUGVybWlzc2lvbk9ic2VydmVyJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVPYnNlcnZlcihQZXJtaXNzaW9uT2JzZXJ2ZXImKSA9IDA7CiBw
cm90ZWN0ZWQ6CkBAIC01MSw4ICs1MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPER1bW15
UGVybWlzc2lvbkNvbnRyb2xsZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHVt
bXlQZXJtaXNzaW9uQ29udHJvbGxlcik7IH0KIHByaXZhdGU6CiAgICAgRHVtbXlQZXJtaXNzaW9u
Q29udHJvbGxlcigpID0gZGVmYXVsdDsKLSAgICBQZXJtaXNzaW9uU3RhdGUgcXVlcnkoQ2xpZW50
T3JpZ2luJiYsIFBlcm1pc3Npb25EZXNjcmlwdG9yJiYpIGZpbmFsIHsgcmV0dXJuIFBlcm1pc3Np
b25TdGF0ZTo6RGVuaWVkOyB9Ci0gICAgdm9pZCByZXF1ZXN0KENsaWVudE9yaWdpbiYmLCBQZXJt
aXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25TdGF0
ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgY29tcGxldGlvbkhhbmRsZXIoUGVybWlz
c2lvblN0YXRlOjpEZW5pZWQpOyB9CisgICAgdm9pZCBxdWVyeShXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiwgUGVybWlzc2lvbkRlc2NyaXB0b3ImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFBlcm1pc3Npb25TdGF0ZT4pPiYmIGNhbGxiYWNrKSBmaW5hbCB7IGNhbGxiYWNr
KHsgfSk7IH0KICAgICB2b2lkIGFkZE9ic2VydmVyKFBlcm1pc3Npb25PYnNlcnZlciYpIGZpbmFs
IHsgfQogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoUGVybWlzc2lvbk9ic2VydmVyJikgZmluYWwg
eyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9Q
ZXJtaXNzaW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1p
c3Npb25zLmNwcAppbmRleCAyMTMzYjJhNzBiYjg4MjVjZjNjYzRkYzYxMjA4OTIzNDk1Yjk4YTBi
Li5hZjU4ZjczNTg2N2RhNThmNzljOWI3OWIxNDhmNWM2ZjZlZDg4ZGEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25zLmNwcApAQCAtODks
OCArODksMTkgQEAgdm9pZCBQZXJtaXNzaW9uczo6cXVlcnkoSlNDOjpTdHJvbmc8SlNDOjpKU09i
amVjdD4gcGVybWlzc2lvbkRlc2NyaXB0b3JWYWx1ZSwgRE8KIAogICAgIGF1dG8qIG9yaWdpbiA9
IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gb3JpZ2lu
ID8gb3JpZ2luLT5kYXRhKCkgOiBTZWN1cml0eU9yaWdpbkRhdGEgeyB9OwotICAgIGF1dG8gcGVy
bWlzc2lvblN0YXRlID0gbV9jb250cm9sbGVyLT5xdWVyeShDbGllbnRPcmlnaW4geyBjb250ZXh0
LT50b3BPcmlnaW4oKS5kYXRhKCksIG9yaWdpbkRhdGEgfSwgUGVybWlzc2lvbkRlc2NyaXB0b3Ig
eyBwYXJhbWV0ZXJEZXNjcmlwdG9yIH0pOwotICAgIHByb21pc2UucmVzb2x2ZShQZXJtaXNzaW9u
U3RhdHVzOjpjcmVhdGUoKmNvbnRleHQsIHBlcm1pc3Npb25TdGF0ZSwgcGFyYW1ldGVyRGVzY3Jp
cHRvcikpOworICAgIG1fY29udHJvbGxlci0+cXVlcnkoQ2xpZW50T3JpZ2luIHsgY29udGV4dC0+
dG9wT3JpZ2luKCkuZGF0YSgpLCBvcmlnaW5EYXRhIH0sIFBlcm1pc3Npb25EZXNjcmlwdG9yIHsg
cGFyYW1ldGVyRGVzY3JpcHRvciB9LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH0sIHBhcmFtZXRlckRlc2NyaXB0b3IsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
IHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gY29udGV4dCA9IG1fbmF2
aWdhdG9yID8gbV9uYXZpZ2F0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7
CisgICAgICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+Z2xvYmFsT2JqZWN0KCkpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgY29udGV4dC0+cG9zdFRhc2soW3BhcmFtZXRlckRl
c2NyaXB0b3IsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCAgcGVybWlzc2lvblN0YXRlID0g
V1RGTW92ZShwZXJtaXNzaW9uU3RhdGUpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGlmICghcGVybWlzc2lvblN0YXRlKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFBlcm1p
c3Npb25TdGF0dXM6OmNyZWF0ZShjb250ZXh0LCAqcGVybWlzc2lvblN0YXRlLCBwYXJhbWV0ZXJE
ZXNjcmlwdG9yKSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKaW5kZXggMjBiZTc4NjgxOGJl
OGExNTI4OTNlOTJmMGE4ZDQ1M2RjZGFkOTAzMC4uNTNhZjEwYTg2ZTEyOWExOWVkMTA1MTNhMTYw
ZDlkYTA5N2ZlNWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTg3
LDYgKzE4Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgICAgIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrLAorICAgICAgICBRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjaywK
IAogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgQnVuZGxlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA3YzhiZDIzOTI0YzRhYjcxMTU0ZjVjYWM3ZTczY2M3M2Qz
OTQ1OGMwLi5jY2I3MjExNDU5OTZhMTEzMmI5ZDNiNmI4ZjJjOWNmMWQ1MzVlODYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLV2luZG93RmVhdHVyZXMqIFdLV2luZG93RmVhdHVyZXNSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNh
bGxiYWNrKiBXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmOwogdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiBX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKiBXS01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tR
dWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjayogV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxs
YmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5kbGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXgg
NGYwYTIzNTQ0MWIyZTFjMGNjY2MxNDBkY2M1MGYyNmYwMDQ0M2NhMC4uOGZmMmM5ZWJlZGM2N2Rl
MjBhMjlkZGFkNjFhMjBlNGM2MzgyYjIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01MjAsNiArNTIwLDcg
QEAgVUlQcm9jZXNzL0FQSS9DL1dLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIFVJUHJvY2Vzcy9B
UEkvQy9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcAogVUlQcm9jZXNzL0FQSS9D
L1dLT3BlblBhbmVsUGFyYW1ldGVyc1JlZi5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS09wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmNwcAorVUlQcm9jZXNzL0FQSS9DL1dLUXVlcnlQZXJtaXNzaW9uUmVz
dWx0Q2FsbGJhY2suY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3Jv
dXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDk2
ODUwNTQ5MjljZmRjMzVlOThhMTVmMDU0Zjc4MzllMWRmNGFlMDguLmZiY2U5NDVlNDU4NmYyZGY3
ZTc1MGZhOTgwNzY2NDQ4N2RlMjg0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWVD
b25zZW50RGVjaXNpb25SZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTW9kYWxDb250YWluZXJUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGVybWlzc2lvblN0YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTIyMiw2ICsyMjMsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luLCBjb25zdCBXVEY6OlN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IHBhZ2UucmVxdWVzdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihvcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcXVlcnlQZXJtaXNz
aW9uKGNvbnN0IFdURjo6U3RyaW5nJiBwZXJtaXNzaW9uTmFtZSwgQVBJOjpTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
UGVybWlzc2lvblN0YXRlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsgfQorCiAjaWYgRU5BQkxFKFdFQlhSKSAmJiBQTEFURk9STShDT0NPQSkKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25PblhSU2Vzc2lvbkZlYXR1cmVzKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgUGxhdGZv
cm1YUjo6U2Vzc2lvbk1vZGUsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Qm
IGdyYW50ZWQsIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3QmIC8qIGNvbnNl
bnRSZXF1aXJlZCAqLywgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdCYgLyog
Y29uc2VudE9wdGlvbmFsICovLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
UGxhdGZvcm1YUjo6RGV2aWNlOjpGZWF0dXJlTGlzdD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsgY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0gICAgCiAgICAgdmlydHVhbCB2b2lkIHN0
YXJ0WFJTZXNzaW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZXRhaW5QdHI8aWQ+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxl
cihuaWwpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4
IDU2ZTA4NDQ4ODcyOTllODBhYzY5NTViMGU5MzJjYWE1MGY1ZDRhOTEuLjhiOWI2MGEwMDJjNTBj
YWVhMmMxZDQwNzdjYmViNjJkOTZmOTE4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCkBAIC03OSw2ICs3OSw3IEBAIGNsYXNzIERvd25sb2FkUHJveHk7CiBj
bGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
K2NsYXNzIFF1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrOwogY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eTsKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CkBAIC0xMzYsNiAr
MTM3LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJlZiwgQVBJOjpIaXRU
ZXN0UmVzdWx0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29u
RGF0YWJhc2UpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3Rv
clVJUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25D
YWxsYmFja1JlZiwgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2spCitXS19BRERfQVBJ
X01BUFBJTkcoV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiwgUXVlcnlQZXJtaXNz
aW9uUmVzdWx0Q2FsbGJhY2spCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZXNzYWdlTGlzdGVuZXJS
ZWYsIEFQSTo6TWVzc2FnZUxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdGlv
bkFjdGlvblJlZiwgQVBJOjpOYXZpZ2F0aW9uQWN0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
TmF2aWdhdGlvbkRhdGFSZWYsIEFQSTo6TmF2aWdhdGlvbkRhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAyMGExZTMwMmRkYmQyYTYxZTNjNWEyY2Q1ZWYx
MWQzNWM5NGJmZmJhLi42MDQ3YzVmYTRlNzM2ODY3NTY2MjIyZDYzZjY2NTcyYWY5NGNkODEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTY1LDYgKzY1LDcg
QEAKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUg
IlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJQcmludEluZm8uaCIKKyNpbmNsdWRlICJRdWVyeVBl
cm1pc3Npb25SZXN1bHRDYWxsYmFjay5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS1Bh
Z2VQb2xpY3lDbGllbnRJbnRlcm5hbC5oIgpAQCAtMTE4LDcgKzExOSw3IEBAIHRlbXBsYXRlPD4g
c3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFn
ZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJ
Q2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xp
ZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVu
dFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVu
dFYxNCwgV0tQYWdlVUlDbGllbnRWMTUsIFdLUGFnZVVJQ2xpZW50VjE2LCBXS1BhZ2VVSUNsaWVu
dFYxNz4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAs
IFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdL
UGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFn
ZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJ
Q2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJ
Q2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRWMTUsIFdLUGFnZVVJ
Q2xpZW50VjE2LCBXS1BhZ2VVSUNsaWVudFYxNywgV0tQYWdlVUlDbGllbnRWMTg+IFZlcnNpb25z
OwogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMjE5MCw2ICsyMTkxLDE1IEBA
IHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1Bh
Z2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAKICAgICAgICAgICAgIG1fY2xpZW50LmRlY2lkZVBv
bGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQ
SSgmb3JpZ2luKSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShrZXlTeXN0ZW0pLnB0cigpKSwg
dG9BUEkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNyZWF0ZShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSkucHRyKCkpKTsKICAgICAgICAgfQorCisgICAgICAgIHZvaWQgcXVl
cnlQZXJtaXNzaW9uKGNvbnN0IFdURjo6U3RyaW5nJiBwZXJtaXNzaW9uTmFtZSwgQVBJOjpTZWN1
cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9jbGllbnQucXVlcnlQZXJtaXNzaW9uKSB7Cisg
ICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2NsaWVudC5xdWVyeVBlcm1pc3Np
b24odG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShwZXJtaXNzaW9uTmFtZSkucHRyKCkpLCB0b0FQ
SSgmb3JpZ2luKSwgdG9BUEkoUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2s6OmNyZWF0ZShX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkucHRyKCkpKTsKKyAgICAgICAgfQogICAgIH07CiAK
ICAgICB0b0ltcGwocGFnZVJlZiktPnNldFVJQ2xpZW50KG1ha2VVbmlxdWU8VUlDbGllbnQ+KHdr
Q2xpZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGll
bnQuaAppbmRleCA2NmZhN2Y5NDhiZGMzNTY2OWZhN2RiNWEwMTUzNTMzM2JlZmE1NWVjLi5lMzMx
ODc0NzdkM2Q2ZTc2MTRiODkxOGQ0NjdiMzA4NDdmOTQzODY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTE0MCw3ICsxNDAsNyBAQCB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VSZXF1ZXN0V2ViQXV0aGVudGljYXRpb25Ob0dlc3R1cmVDYWxs
YmFjaykoKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvclNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJp
dHlPcmlnaW5SZWYgdG9wT3JpZ2luLCBXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxi
YWNrUmVmIGNhbGxiYWNrKTsKIAogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9y
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLU3RyaW5nUmVmIGtleVN5c3RlbSwgV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjayk7Ci0KK3R5cGVkZWYg
dm9pZCAoKldLUXVlcnlQZXJtaXNzaW9uQ2FsbGJhY2spKFdLU3RyaW5nUmVmIHBlcm1pc3Npb25O
YW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwgV0tRdWVyeVBlcm1pc3Npb25SZXN1
bHRDYWxsYmFja1JlZiBjYWxsYmFjayk7CiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJl
ZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShX
S1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tF
dmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CkBAIC0xNjk2LDkgKzE2OTYsMTI3IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFn
ZVVJQ2xpZW50VjE3IHsKIAogICAgIC8vIFZlcnNpb24gMTcuCiAgICAgV0tQYWdlUmVxdWVzdFdl
YkF1dGhlbnRpY2F0aW9uTm9HZXN0dXJlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0V2ViQXV0aGVudGljYXRpb25Ob0dlc3R1cmU7Ci0KIH0gV0tQYWdlVUlDbGllbnRWMTc7CiAK
K3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjE4IHsKKyAgICBXS1BhZ2VVSUNsaWVudEJh
c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7
CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKKyAgICBXS1BhZ2VV
SUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNsb3NlOworICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOworICAgIFdLUGFnZUZvY3VzQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9j
dXM7CisgICAgV0tQYWdlVW5mb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bmZvY3VzOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVy
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENv
bmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICBydW5KYXZhU2Ny
aXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgcnVuSmF2
YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVNldFN0YXR1
c1RleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
U3RhdHVzVGV4dDsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50X2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5nUGx1Z2luQnV0dG9uQ2xp
Y2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURpZE5vdEhhbmRsZUtleUV2
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxl
S2V5RXZlbnQ7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50OworICAgIFdL
UGFnZUdldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZVNldFRvb2xiYXJzQXJlVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9vbGJhcnNB
cmVWaXNpYmxlOworICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VT
ZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldE1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0U3RhdHVzQmFySXNWaXNpYmxl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zpc2li
bGU7CisgICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0
SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOworICAgIFdLUGFn
ZUdldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2luZG93RnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaW5kb3dGcmFtZTsKKyAg
ICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFja19kZXByZWNhdGVkRm9y
VXNlV2l0aFY2ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbF9kZXByZWNhdGVkRm9yVXNl
V2l0aFY2OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRT
Y3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdl
UnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAg
IFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAg
ICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRv
IGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2
ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHRfdW5hdmFpbGFibGU7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgICAgICAgICAg
ICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisgICAgV0tQYWdl
TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAgICAv
LyBWZXJzaW9uIDIuCisgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQYWdl
SGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoaWRlQ29sb3JQaWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQ7CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tQYWdlUGlubmVkU3RhdGVE
aWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRT
dGF0ZURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNC4KKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDI7IC8vIFVzZWQgdG8gYmUgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW51c2VkMzsgLy8gVXNlZCB0byBiZSBkaWRSZWNvZ25pemVMb25n
TW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVzZWQgdG8gYmUgZGlkQ2Fu
Y2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICBXS1BhZ2VJc1BsYXlpbmdB
dWRpb0RpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGxh
eWluZ0F1ZGlvRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA1LgorICAgIFdLUGFnZURlY2lk
ZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlRGlk
Q2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRDbGlja0F1dG9GaWxsQnV0dG9uOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFs
ZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZp
cm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICBydW5KYXZhU2NyaXB0
Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQ
cm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgcnVuSmF2YVNj
cmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIHZvaWQqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2Vk
NTsgLy8gVXNlZCB0byBiZSBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZS4KKworICAgIC8v
IFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVu
SmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmly
bTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisg
ICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAg
V0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3NlUG9p
bnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRv
cGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJl
SW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJl
c291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFj
a2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24g
MTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJh
bmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFw
cGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VTaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAg
IHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7CisKKyAgICAvLyBW
ZXJzaW9uIDE0LgorICAgIFdLUGFnZVJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDsKKwor
ICAgIC8vIFZlcnNpb24gMTUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0OworCisgICAgLy8gVmVyc2lvbiAxNi4KKyAgICBX
S1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2sgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q7
CisKKyAgICAvLyBWZXJzaW9uIDE3LgorICAgIFdLUGFnZVJlcXVlc3RXZWJBdXRoZW50aWNhdGlv
bk5vR2VzdHVyZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFdlYkF1dGhlbnRp
Y2F0aW9uTm9HZXN0dXJlOworCisgICAgLy8gVmVyc2lvbiAxOC4KKyAgICBXS1F1ZXJ5UGVybWlz
c2lvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1
ZXJ5UGVybWlzc2lvbjsKK30gV0tQYWdlVUlDbGllbnRWMTg7CisKICNpZmRlZiBfX2NwbHVzcGx1
cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA0YjhiZjQ0MTY2MThjZjRkODZkNDJkZDBmYTEyYmUxZjFjYWE5OTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1F1ZXJ5UGVybWlzc2lvblJlc3Vs
dENhbGxiYWNrLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaCIKKwor
I2luY2x1ZGUgIlF1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLUXVlcnlQ
ZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShR
dWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjazo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tRdWVy
eVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja0NvbXBsZXRlV2l0aERlbmllZChXS1F1ZXJ5UGVybWlz
c2lvblJlc3VsdENhbGxiYWNrUmVmIGNhbGxiYWNrKQoreworICAgIHJldHVybiB0b0ltcGwoY2Fs
bGJhY2spLT5zZXRQZXJtaXNzaW9uKFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsK
K30KKwordm9pZCBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrQ29tcGxldGVXaXRoR3Jh
bnRlZChXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrUmVmIGNhbGxiYWNrKQoreworICAg
IHJldHVybiB0b0ltcGwoY2FsbGJhY2spLT5zZXRQZXJtaXNzaW9uKFdlYkNvcmU6OlBlcm1pc3Np
b25TdGF0ZTo6R3JhbnRlZCk7Cit9CisKK3ZvaWQgV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxs
YmFja0NvbXBsZXRlV2l0aFByb21wdChXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrUmVm
IGNhbGxiYWNrKQoreworICAgIHJldHVybiB0b0ltcGwoY2FsbGJhY2spLT5zZXRQZXJtaXNzaW9u
KFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2su
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUXVlcnlQZXJtaXNzaW9uUmVzdWx0
Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjI4ZTcxMzYwMGUzOTBjNjI2NmFlNThmNzhiNGUwYmU3
MGNkZDlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzIAorZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlw
ZUlEIFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tHZXRUeXBlSUQodm9pZCk7CisKK1dL
X0VYUE9SVCB2b2lkIFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tDb21wbGV0ZVdpdGhE
ZW5pZWQoV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiBjYWxsYmFjayk7CitXS19F
WFBPUlQgdm9pZCBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrQ29tcGxldGVXaXRoR3Jh
bnRlZChXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrUmVmIGNhbGxiYWNrKTsKK1dLX0VY
UE9SVCB2b2lkIFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tDb21wbGV0ZVdpdGhQcm9t
cHQoV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiBjYWxsYmFjayk7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNh
bGxiYWNrLmgKaW5kZXggYjhhZWFmYzY5ODRiYTk2ZjU0ODkyZTczMmFmZWEzYTA2M2M5YzcyZC4u
YjUyNjQ4ZmU1OTM2ODA4NTQ3ZWQyMDFhMmFjMTc5MTc0NjQwMGE1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25D
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgogCi0jaWZkZWYgX19jcGx1c3BsdXMKKyNpZmRlZiBfX2NwbHVz
cGx1cyAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGQ2YTdhYjY4
MGFjN2FlYzdjODMwZWVkNzU3MTJiYjE2NWFmNWNjYWEuLjBkODY3OGZhNjljMzlkNWVhNDg5MDc5
NzJiYWNlNTRlY2U0ZGU5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTYxLDcgKzE2MSw3IEBAIHN0
cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRv
d0ZlYXR1cmVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5k
bGVyOih2b2lkICheKShCT09MIGFsbG93ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1Nl
Y3VyaXR5T3JpZ2luKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFt
ZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVybWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9u
KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjAp
KTsKLQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBxdWVyeVBlcm1pc3Np
b246KE5TU3RyaW5nKiluYW1lIGZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiopb3JpZ2luIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1Blcm1pc3Npb25EZWNpc2lvbiBwZXJtaXNzaW9u
U3RhdGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1l
c3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBlZGl0b3JTdGF0ZURpZENoYW5nZTooTlNEaWN0aW9uYXJ5ICopZWRpdG9y
U3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDNkMWU2NGMyMTVh
MjIzZmI3MTY4ZmZkNDJiZTM1ODQ4OGY1MjU0YjEuLmY1Y2ExZDU1Y2Y3NDU3YTgxNzRkNzdkMTMx
MGJjYTM1ZjFkYjM5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmgKQEAgLTE3Myw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHJlcXVlc3RX
ZWJBdXRoZW50aWNhdGlvbk5vR2VzdHVyZShBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKICAgICAgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBmaW5hbDsKKyAgICAgICAgdm9pZCBxdWVyeVBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJikgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkRW5h
YmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5hbDsKICAgICAgICAg
dm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJQYWdlUHJveHkmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXgg
ZjlkNjMxMzljMDNmODE1YTZlNzAwZTliM2NjOTE5M2E3ZDRlZDY0Yy4uN2U1OWFjNzA3N2JhZjM3
NTkyNDc2YTYzNTI2ZDBjZDc1NTVkZTI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xNzQyLDYgKzE3NDIsNDMgQEAgdm9pZCBVSURlbGVnYXRl
OjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVx
dWVzdChXZWIKICAgICB9KS5nZXQoKV07CiB9CiAKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnF1ZXJ5UGVybWlzc2lvbihjb25zdCBTdHJpbmcmIHBlcm1pc3Npb25OYW1lLCBBUEk6OlNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fdWlE
ZWxlZ2F0ZSkgeworICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU6OlBy
b21wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGRlbGVnYXRlID0gKGlk
IDxXS1VJRGVsZWdhdGVQcml2YXRlPiltX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7Cisg
ICAgaWYgKCFkZWxlZ2F0ZSkgeworICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpQZXJtaXNzaW9u
U3RhdGU6OlByb21wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIVtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnF1ZXJ5UGVybWlzc2lv
bjpmb3JPcmlnaW46Y29tcGxldGlvbkhhbmRsZXI6KV0pIHsKKyAgICAgICAgY2FsbGJhY2soV2Vi
Q29yZTo6UGVybWlzc2lvblN0YXRlOjpQcm9tcHQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRl
KGRlbGVnYXRlLCBAc2VsZWN0b3IoX3dlYlZpZXc6cXVlcnlQZXJtaXNzaW9uOmZvck9yaWdpbjpj
b21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICBbZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRl
LT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcXVlcnlQZXJtaXNzaW9uOnBlcm1pc3Npb25OYW1lIGZv
ck9yaWdpbjp3cmFwcGVyKG9yaWdpbikgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0o
V0tQZXJtaXNzaW9uRGVjaXNpb24gcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsK
KyAgICAgICAgc3dpdGNoIChwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAgICAgY2FzZSBXS1Blcm1p
c3Npb25EZWNpc2lvblByb21wdDoKKyAgICAgICAgICAgIGNhbGxiYWNrKFdlYkNvcmU6OlBlcm1p
c3Npb25TdGF0ZTo6UHJvbXB0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdL
UGVybWlzc2lvbkRlY2lzaW9uR3JhbnQ6CisgICAgICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpQ
ZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV0tQZXJtaXNzaW9uRGVjaXNpb25EZW55OgorICAgICAgICAgICAgY2FsbGJhY2soV2ViQ29y
ZTo6UGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9KS5nZXQoKV07Cit9CisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZEVu
YWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4oV2ViUGFnZVByb3h5JikKIHsKICAgICBpZiAoIW1f
dWlEZWxlZ2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1F1ZXJ5UGVy
bWlzc2lvblJlc3VsdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9RdWVyeVBl
cm1pc3Npb25SZXN1bHRDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZWViYjZlOTMzM2QwODkyYzMw
OTM0ZWQ0M2VkZTUxZDg0OGEwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9RdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGVybWlzc2lvblN0YXRlLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBRdWVyeVBlcm1pc3Np
b25SZXN1bHRDYWxsYmFjayA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5
cGU6OlF1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjaz4gY3JlYXRlKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFF1ZXJ5
UGVybWlzc2lvblJlc3VsdENhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7Cisg
ICAgfQorICAgIH5RdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjaygpCisgICAgeworICAgICAg
ICBpZiAobV9jb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIG1fY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsKKyAgICB9CisgICAgdm9pZCBzZXRQZXJtaXNzaW9uKFdlYkNvcmU6OlBlcm1pc3Np
b25TdGF0ZSBwZXJtaXNzaW9uKSB7IG1fY29tcGxldGlvbkhhbmRsZXIocGVybWlzc2lvbik7IH0K
KworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjayhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0
YXRlPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIDogbV9jb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAgICB7IH0KKworICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4gbV9j
b21wbGV0aW9uSGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDlmMzYzMTAxOWU4YTRjOTVjYzU3MmZhZWFj
ZTQ2MWU2NGE5NjMyNTUuLjdlZjY5N2NlNDE3MmU5NTI1NjgwMWVkMzM3NTI2YWMzMTI0MDA1NTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAK
ICNpbmNsdWRlICJBUElVSUNsaWVudC5oIgogI2luY2x1ZGUgIkRldmljZUlkSGFzaFNhbHRTdG9y
YWdlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhUGVybWlzc2lvblV0
aWxpdGllcy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
IgogI2luY2x1ZGUgIlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQXV0
b21hdGlvblNlc3Npb24uaCIKQEAgLTMzOSw3ICszNDAsNyBAQCBjb25zdCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICghZ3JhbnRlZFJlcXVlc3Qt
PnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlm
IChncmFudGVkUmVxdWVzdC0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCisgICAgICAgIGlmIChmcmFt
ZUlEICYmIGdyYW50ZWRSZXF1ZXN0LT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgIGlmIChncmFudGVkUmVxdWVzdC0+cmVxdWlyZXNWaWRlb0Nh
cHR1cmUoKSkKQEAgLTY3MSw2ICs2NzIsMzUgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yU3BlZWNoUmUKICAg
ICBtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChtX3BhZ2UsICpmcmFtZSwgV1RGTW92ZShhcGlSZXF1ZXN0aW5nT3JpZ2luKSwgV1RGTW92
ZShhcGlUb3BPcmlnaW4pLCByZXF1ZXN0LmdldCgpKTsKIH0KIAorYm9vbCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHRGb3JD
YW1lcmEoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pIGNvbnN0Cit7CisgICAgaWYgKCFTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRTdGF0ZSgpLmFjdGl2
ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQob3JpZ2luLnRvcE9yaWdpbi5zZWN1cml0eU9y
aWdpbigpLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gIWFueU9m
KG1fZGVuaWVkUmVxdWVzdHMsIFtdKGF1dG8mIHJlcXVlc3QpIHsgcmV0dXJuIHJlcXVlc3QuaXNW
aWRlb0RlbmllZDsgfSkKKyAgICAgICAgJiYgIWFueU9mKG1fcHJlZ3JhbnRlZFJlcXVlc3RzLCBb
XShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgp
OyB9KQorICAgICAgICAmJiAhYW55T2YobV9ncmFudGVkUmVxdWVzdHMsIFtdKGF1dG8mIHJlcXVl
c3QpIHsgcmV0dXJuIHJlcXVlc3QtPnJlcXVpcmVzVmlkZW9DYXB0dXJlKCk7IH0pOworfQorCiti
b29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzaG91bGRDaGFuZ2VE
ZW5pZWRUb1Byb21wdEZvck1pY3JvcGhvbmUoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pIGNv
bnN0Cit7CisgICAgaWYgKCFTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2Uu
cGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQob3JpZ2lu
LnRvcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICByZXR1cm4gIWFueU9mKG1fZGVuaWVkUmVxdWVzdHMsIFtdKGF1dG8mIHJlcXVlc3Qp
IHsgcmV0dXJuIHJlcXVlc3QuaXNBdWRpb0RlbmllZDsgfSkKKyAgICAgICAgJiYgIWFueU9mKG1f
cHJlZ3JhbnRlZFJlcXVlc3RzLCBbXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LT5y
ZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpOyB9KQorICAgICAgICAmJiAhYW55T2YobV9ncmFudGVkUmVx
dWVzdHMsIFtdKGF1dG8mIHJlcXVlc3QpIHsgcmV0dXJuIHJlcXVlc3QtPnJlcXVpcmVzQXVkaW9D
YXB0dXJlKCk7IH0pOworfQorCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpzaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50Rm9yQ2FtZXJhKGNvbnN0IENsaWVudE9y
aWdpbiYgb3JpZ2luKSBjb25zdAoreworICAgIHJldHVybiBzZWFyY2hGb3JHcmFudGVkUmVxdWVz
dCh7IH0sIG9yaWdpbi5jbGllbnRPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgb3JpZ2lu
LnRvcE9yaWdpbi5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK2Jv
b2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNob3VsZENoYW5nZVBy
b21wdFRvR3JhbnRGb3JNaWNyb3Bob25lKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKSBjb25z
dAoreworICAgIHJldHVybiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh7IH0sIG9yaWdpbi5jbGll
bnRPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgb3JpZ2luLnRvcE9yaWdpbi5zZWN1cml0
eU9yaWdpbigpLmdldCgpLCB0cnVlLCBmYWxzZSk7Cit9CiAKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0U3lz
dGVtVmFsaWRhdGlvbihjb25zdCBXZWJQYWdlUHJveHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IDY3NGJhYjRkYjdjOWM2NGRlZDg1Nzg3
NDFkYmQyYWI5OTZkYzQwNjUuLmE2YzZhN2JlODJjMDNhZDhlNmQ0NzAyZTRmYjJmZDQ4YzQ0MGJj
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMjIsNiArMjIsOCBAQAog
I2luY2x1ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgiCiAjaW5jbHVkZSAiVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
cm9kdWNlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGVybWlzc2lvbkRlc2NyaXB0b3IuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Blcm1pc3Npb25TdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CkBA
IC0zNSw2ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhcHR1cmVEZXZp
Y2U7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IE1lZGlhQ29uc3RyYWludHM7CiBzdHJ1
Y3QgTWVkaWFTdHJlYW1SZXF1ZXN0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CkBAIC0xMTEsNiAr
MTE0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBpc1NjcmVlbkNhcHR1cmVEZW5pZWQ7CiAg
ICAgfTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPiBmaWx0
ZXJQZXJtaXNzaW9uUXVlcnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgV2Vi
Q29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3ImLCBXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUpOwor
CisgICAgYm9vbCBzaG91bGRDaGFuZ2VEZW5pZWRUb1Byb21wdEZvckNhbWVyYShjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mKSBjb25zdDsKKyAgICBib29sIHNob3VsZENoYW5nZURlbmllZFRv
UHJvbXB0Rm9yTWljcm9waG9uZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBjb25zdDsK
KyAgICBib29sIHNob3VsZENoYW5nZVByb21wdFRvR3JhbnRGb3JDYW1lcmEoY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJikgY29uc3Q7CisgICAgYm9vbCBzaG91bGRDaGFuZ2VQcm9tcHRUb0dy
YW50Rm9yTWljcm9waG9uZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBjb25zdDsKKwog
cHJpdmF0ZToKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxv
Z2dlcigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggZTQ5OTM1YzMyNWY2OWYzNDM0NDBjYWEwYWRkN2JmZmUxYzAwNTI4Mi4uODRkNmNm
NjBhNzM5M2ZmNzBmNTVkNDQxNDJkYTNmZWMwYjJkZjc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04NjE2LDEwICs4NjE2LDQ2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXZva2VHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Ub2tlbihjb25zdCBTdHJpbmcm
IGF1dGhvcml6YXRpCiAgICAgbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5y
ZXZva2VBdXRob3JpemF0aW9uVG9rZW4oYXV0aG9yaXphdGlvblRva2VuKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RQZXJtaXNzaW9uKGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0
IFBlcm1pc3Npb25EZXNjcmlwdG9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9u
U3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnF1ZXJ5UGVy
bWlzc2lvbihjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgY29uc3QgUGVybWlzc2lv
bkRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxQZXJtaXNzaW9uU3RhdGU+LCBib29sIHNob3VsZENhY2hlKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICAvLyBGSVhNRTogU2hvdyBhIHByb21wdCBmb3IgdXNlciBpbnB1dC4KLSAg
ICBjb21wbGV0aW9uSGFuZGxlcihQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQpOworICAgIGJvb2wg
c2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHQgPSB0cnVlOworICAgIGJvb2wgc2hvdWxkQ2hhbmdl
UHJvbXB0VG9HcmFudCA9IGZhbHNlOworICAgIFN0cmluZyBuYW1lOworICAgIGlmIChkZXNjcmlw
dG9yLm5hbWUgPT0gUGVybWlzc2lvbk5hbWU6OkNhbWVyYSkgeworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisgICAgICAgIG5hbWUgPSAiY2FtZXJhIl9zOworICAgICAgICBzaG91bGRDaGFuZ2VE
ZW5pZWRUb1Byb21wdCA9IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnNob3Vs
ZENoYW5nZURlbmllZFRvUHJvbXB0Rm9yQ2FtZXJhKGNsaWVudE9yaWdpbik7CisgICAgICAgIHNo
b3VsZENoYW5nZVByb21wdFRvR3JhbnQgPSB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKS5zaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50Rm9yQ2FtZXJhKGNsaWVudE9yaWdpbik7Cisj
ZW5kaWYKKyAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IubmFtZSA9PSBQZXJtaXNzaW9uTmFtZTo6
TWljcm9waG9uZSkgeworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgICAgIG5hbWUgPSAi
bWljcm9waG9uZSJfczsKKyAgICAgICAgc2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHQgPSB1c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zaG91bGRDaGFuZ2VEZW5pZWRUb1Byb21w
dEZvck1pY3JvcGhvbmUoY2xpZW50T3JpZ2luKTsKKyAgICAgICAgc2hvdWxkQ2hhbmdlUHJvbXB0
VG9HcmFudCA9IHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnNob3VsZENoYW5n
ZVByb21wdFRvR3JhbnRGb3JNaWNyb3Bob25lKGNsaWVudE9yaWdpbik7CisjZW5kaWYKKyAgICB9
IGVsc2UgaWYgKGRlc2NyaXB0b3IubmFtZSA9PSBQZXJtaXNzaW9uTmFtZTo6R2VvbG9jYXRpb24p
IHsKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgICAgIG5hbWUgPSAiZ2VvbG9jYXRpb24i
X3M7CisjZW5kaWYKKyAgICB9CisKKyAgICBpZiAobmFtZS5pc051bGwoKSkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0sIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGNsaWVudE9yaWdp
bi50b3BPcmlnaW4pOworICAgIG1fdWlDbGllbnQtPnF1ZXJ5UGVybWlzc2lvbihuYW1lLCBvcmln
aW4sIFtjbGllbnRPcmlnaW4sIHNob3VsZENoYW5nZURlbmllZFRvUHJvbXB0LCBzaG91bGRDaGFu
Z2VQcm9tcHRUb0dyYW50LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KSB7Cisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIGZhbHNlKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoKnJlc3VsdCA9PSBQZXJtaXNzaW9uU3RhdGU6
OkRlbmllZCAmJiBzaG91bGRDaGFuZ2VEZW5pZWRUb1Byb21wdCkKKyAgICAgICAgICAgIHJlc3Vs
dCA9IFBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0OworICAgICAgICBlbHNlIGlmICgqcmVzdWx0ID09
IFBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0ICYmIHNob3VsZENoYW5nZVByb21wdFRvR3JhbnQpCisg
ICAgICAgICAgICByZXN1bHQgPSBQZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQ7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCpyZXN1bHQsIGZhbHNlKTsKKyAgICB9KTsKIH0KIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDUwN2VhYzhhOTY1MmFlMGZlMGExM2IyMjZkZWZmODgyZGVjMzhmMzEuLjE5OTE1ZDQ0NjVhMzFm
OWIxODQ3OGJhZjc1YTU5MDAzOTJjYmNhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0yMTk3LDcgKzIxOTcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoR2VvbG9jYXRpb25JZGVudGlmaWVyLCBG
cmFtZUluZm9EYXRhJiYpOwogICAgIHZvaWQgcmV2b2tlR2VvbG9jYXRpb25BdXRob3JpemF0aW9u
VG9rZW4oY29uc3QgU3RyaW5nJiBhdXRob3JpemF0aW9uVG9rZW4pOwotICAgIHZvaWQgcmVxdWVz
dFBlcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgV2ViQ29yZTo6
UGVybWlzc2lvbkRlc2NyaXB0b3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBl
cm1pc3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgcXVlcnlQZXJtaXNzaW9uKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25T
dGF0ZT4sIGJvb2wgc2hvdWxkQ2FjaGUpPiYmKTsKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dlYlZpZXcoVXNlck1lc3NhZ2UmJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggMTVjZDBlM2Q1OTY4YmM2NjE3ZWE1YzRhMjhmMDE3YTExNGRhYjk1Yi4uNDQwOTQ4MTZh
NDM1M2E1YTU0YTg4Y2IwODRkNzVmN2VjODhjMTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjA4LDcgKzYwOCw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTW9kZWxFbGVtZW50U2V0SXNNdXRlZChzdHJ1
Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlzTXV0ZWQp
IC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCiAjZW5kaWYKIAotICAgIHJlcXVlc3RQZXJtaXNzaW9u
KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6UGVy
bWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRvcikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpQ
ZXJtaXNzaW9uU3RhdGUgc3RhdGUpIEFzeW5jCisgICAgUXVlcnlQZXJtaXNzaW9uKHN0cnVjdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRl
c2NyaXB0b3IgZGVzY3JpcHRvcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lv
blN0YXRlPiBzdGF0ZSwgYm9vbCBzaG91bGRDYWNoZSkgQXN5bmMKIAogI2lmIEVOQUJMRShBUFBM
RV9QQVlfQU1TX1VJKQogICAgIFN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oVVJMIG9yaWdpbmF0
aW5nVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3QgcmVxdWVzdCkgLT4g
KHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTFhZDAyMDdiMzAxMjdkMzBjMDIx
ZTY2ZGJjNGE2OGE3OGNiZDAzMC4uZmJiMTY5NTg1M2FiNDAwODE2MjQzZDQ0NzQ5MTFhODE2OWM2
ZjljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC04MzgsNiArODM4LDggQEAKIAkJNDEwRjBENEMyNzAxRUZGOTAwRjk2REZDIC8qIEdQ
VVByb2Nlc3NDb25uZWN0aW9uSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBGMEQ0QjI3MDFFRkVBMDBGOTZE
RkMgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Jbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsg
fTsKIAkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTFBOEREOTIwRERC
NjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTFCMjI2NDFFMzcxQkE2MDA0RjczNjMgLyog
TGliV2ViUlRDTmV0d29yay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDExQjIyNjIxRTM3MTI0NDAwNEY3MzYzIC8qIExpYldlYlJUQ05ldHdvcmsuaCAq
LzsgfTsKKwkJNDExQjg5QzkyN0IyQjc1RDAwRjlFQkQzIC8qIFdLUXVlcnlQZXJtaXNzaW9uUmVz
dWx0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxMUI4OUM3MjdCMkI3NUMwMEY5RUJEMyAvKiBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENh
bGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNDExQjg5Q0MyN0IyQjg5ODAwRjlFQkQzIC8qIFF1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTFC
ODlDQjI3QjJCODk2MDBGOUVCRDMgLyogUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaCAq
LzsgfTsKIAkJNDEyODdENEUyMjVEMUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjg3RDRC
MjI1QzA1QzQwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gKi87IH07CiAJCTQxMzA3
NUFDMURFODVGMzcwMDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMDc1OUIxREU4NEZCMDAwMzlFQzY5
IC8qIE5ldHdvcmtSVENNb25pdG9yLmggKi87IH07CiAJCTQxMzA3NUFEMURFODVGNTgwMDM5RUM2
OSAvKiBMaWJXZWJSVENTb2NrZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMzA3NUEwMURFODVFRTcwMDM5RUM2OSAvKiBMaWJXZWJSVENTb2NrZXQu
aCAqLzsgfTsKQEAgLTQwNTQsNiArNDA1Niw5IEBACiAJCTQxMUE4REQ5MjBEREI2MDUwMDYwRDM0
RiAvKiBXS01vY2tNZWRpYURldmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS01vY2tNZWRpYURldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFB
OEREQTIwRERCNjA1MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNb2NrTWVkaWFEZXZpY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTFCMjI2MjFFMzcxMjQ0MDA0RjczNjMgLyogTGliV2Vi
UlRDTmV0d29yay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENO
ZXR3b3JrLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMUI4OUM3MjdCMkI3NUMwMEY5RUJEMyAvKiBXS1F1
ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDExQjg5QzgyN0IyQjc1RDAwRjlFQkQzIC8qIFdLUXVlcnlQZXJtaXNz
aW9uUmVzdWx0Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMUI4OUNCMjdCMkI4OTYwMEY5RUJEMyAvKiBRdWVyeVBlcm1pc3Npb25S
ZXN1bHRDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWVyeVBl
cm1pc3Npb25SZXN1bHRDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTI4N0Q0QjIyNUMwNUM0MDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU29ja2V0VGFza0NvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI4N0Q0QzIyNUMwNUM1MDA5QTNFMjYgLyog
V2ViU29ja2V0VGFza0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNvY2tldFRhc2tDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI4N0Q0
RDIyNUMxNjFGMDA5QTNFMjYgLyogV2ViU29ja2V0VGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMDk1NCw2ICsxMDk1OSw3IEBACiAJCQkJODMwNDhBRTUxQUNBNDVEQzAwODJDODMyIC8q
IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCAqLywKIAkJCQk0NjgzNTY5QjIxRTgxQ0M3MDA2RTI3
QTMgLyogUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwICovLAogCQkJCTQ2ODM1NjlBMjFFODFDQzcw
MDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5oICovLAorCQkJCTQxMUI4OUNCMjdCMkI4
OTYwMEY5RUJEMyAvKiBRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oICovLAogCQkJCTFB
MEMyMjdDMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5o
ICovLAogCQkJCTFBMEMyMjdEMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxp
bmdTb2Z0TGluay5tbSAqLywKIAkJCQkxQUVFNTcyMzI0MDlGMTQyMDAyMDA1RDYgLyogUXVpY2tM
b29rVGh1bWJuYWlsTG9hZGVyLmggKi8sCkBAIC0xMTMxMCw2ICsxMTMxNiw4IEBACiAJCQkJNTEy
RjU4RjMxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmNwcCAqLywKIAkJCQk1
MTJGNThGNDEyQTg4QTU0MDA2Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2UuaCAqLywKIAkJCQk1
MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovLAor
CQkJCTQxMUI4OUM4MjdCMkI3NUQwMEY5RUJEMyAvKiBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENh
bGxiYWNrLmNwcCAqLywKKwkJCQk0MTFCODlDNzI3QjJCNzVDMDBGOUVCRDMgLyogV0tRdWVyeVBl
cm1pc3Npb25SZXN1bHRDYWxsYmFjay5oICovLAogCQkJCTMzMzY3NjM4MTMwQzk5REMwMDZDOURF
MiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLywKIAkJCQkzMzM2NzYzOTEzMEM5OURD
MDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovLAogCQkJCTFBREU0NkIwMTk1
NEVDNjEwMDBGNzk4NSAvKiBXS1Nlc3Npb25TdGF0ZVJlZi5jcHAgKi8sCkBAIC0xMzI0Miw2ICsx
MzI1MCw3IEBACiAJCQkJNTE3QjVGOTUyNzVFQkE2MzAwMkRDMjJEIC8qIFB1c2hNZXNzYWdlRm9y
VGVzdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUJBOEQzQjUyN0E1RTMzRjAwQ0I3OTAwIC8q
IFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZF
MkJBQjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMUI4
OUNDMjdCMkI4OTgwMEY5RUJEMyAvKiBRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1Ro
dW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQy
MDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0I2QUU0NDI2MDk3OTlDMDBCNkVENUEgLyogUmVhc29uU1BJLmggaW4gSGVhZGVycyAqLywK
QEAgLTEzOTg3LDYgKzEzOTk2LDcgQEAKIAkJCQk1MTJGNThGQzEyQTg4QTU0MDA2Mjk1MzAgLyog
V0tQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyNzJENEM5MUU3MzVGMDkw
MEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThB
Q0FFQTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDExQjg5QzkyN0IyQjc1RDAwRjlFQkQzIC8qIFdLUXVlcnlQZXJtaXNzaW9u
UmVzdWx0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUY0RDVGNTFGMjA2MDg3QTEwMDM4
QkJBOCAvKiBXS1F1aWNrYm9hcmRWaWV3Q29udHJvbGxlckRlbGVnYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tRdWlja0xvb2tQcmV2aWV3Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEMDFCQ0QxOTA1RDU0OTAwQzlDNDVGIC8q
IFdLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJt
aXNzaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGQ2MDE4MjFmMGE4NWMwMzIx
MDAzZmUwZGNlZDc5NzZkOWUyMGVlNWQuLjM3OTBjMTI4Y2U2MjExOWRlODIxMDg3ODc4MDRjMmZk
NTMyNjc3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcApAQCAtNDMs
MTggKzQzLDEwIEBAIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjpXZWJQZXJtaXNzaW9uQ29udHJv
bGxlcihXZWJQYWdlJiBwYWdlKQogewogfQogCi1XZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUgV2Vi
UGVybWlzc2lvbkNvbnRyb2xsZXI6OnF1ZXJ5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdp
biwgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3ImJiBkZXNjcmlwdG9yKQordm9pZCBXZWJQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6cXVlcnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2lu
LCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciYmIGRlc2NyaXB0b3IsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fcGFnZSkKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkOwotCi0gICAgcmV0dXJuIHF1ZXJ5Q2FjaGUo
V1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsKLX0KLQotdm9pZCBXZWJQZXJt
aXNzaW9uQ29udHJvbGxlcjo6cmVxdWVzdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4s
IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiYgZGVzY3JpcHRvciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQotewotICAgIGlmICghbV9wYWdlKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoeyB9KTsKIAogICAgIGF1dG8gY2FjaGVkUmVzdWx0ID0gcXVlcnlDYWNoZShv
cmlnaW4sIGRlc2NyaXB0b3IpOwogICAgIGlmIChjYWNoZWRSZXN1bHQgIT0gV2ViQ29yZTo6UGVy
bWlzc2lvblN0YXRlOjpQcm9tcHQpCkBAIC0xMTIsMTMgKzEwNCwxNCBAQCB2b2lkIFdlYlBlcm1p
c3Npb25Db250cm9sbGVyOjp0cnlQcm9jZXNzaW5nUmVxdWVzdHMoKQogICAgICAgICB9CiAKICAg
ICAgICAgY3VycmVudFJlcXVlc3QuaXNXYWl0aW5nRm9yUmVwbHkgPSB0cnVlOwotICAgICAgICBt
X3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0
UGVybWlzc2lvbihjdXJyZW50UmVxdWVzdC5vcmlnaW4sIGN1cnJlbnRSZXF1ZXN0LmRlc2NyaXB0
b3IpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0byBzdGF0ZSkgewor
ICAgICAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpRdWVyeVBlcm1pc3Npb24oY3VycmVudFJlcXVlc3Qub3JpZ2luLCBjdXJyZW50UmVxdWVzdC5k
ZXNjcmlwdG9yKSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGF1dG8gc3Rh
dGUsIGJvb2wgc2hvdWxkQ2FjaGUpIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBhdXRvIHRha2VuUmVxdWVzdCA9IG1f
cmVxdWVzdHMudGFrZUZpcnN0KCk7CiAgICAgICAgICAgICB0YWtlblJlcXVlc3QuY29tcGxldGlv
bkhhbmRsZXIoc3RhdGUpOwotICAgICAgICAgICAgdXBkYXRlQ2FjaGUodGFrZW5SZXF1ZXN0Lm9y
aWdpbiwgdGFrZW5SZXF1ZXN0LmRlc2NyaXB0b3IsIHN0YXRlKTsKKyAgICAgICAgICAgIGlmIChz
aG91bGRDYWNoZSAmJiBzdGF0ZSkKKyAgICAgICAgICAgICAgICB1cGRhdGVDYWNoZSh0YWtlblJl
cXVlc3Qub3JpZ2luLCB0YWtlblJlcXVlc3QuZGVzY3JpcHRvciwgKnN0YXRlKTsKIAogICAgICAg
ICAgICAgdHJ5UHJvY2Vzc2luZ1JlcXVlc3RzKCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVy
bWlzc2lvbkNvbnRyb2xsZXIuaAppbmRleCBlZGE3ZTE5OTc3ZmUyNGM1MmQwNGI5NzhhNmI3OWEy
MzgwOGQxNWY5Li4zYjU1NGJjOTAxZWQ3NmMzZTA4YmVmMGE0MzZlNzU0NjEwMDk2NDdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlz
c2lvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuaApAQCAtNDMsOCArNDMsNyBAQCBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFdlYlBlcm1pc3Npb25Db250cm9sbGVyKFdlYlBhZ2UmKTsKIAogICAg
IC8vIFdlYkNvcmU6OlBlcm1pc3Npb25Db250cm9sbGVyCi0gICAgV2ViQ29yZTo6UGVybWlzc2lv
blN0YXRlIHF1ZXJ5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpQZXJtaXNzaW9u
RGVzY3JpcHRvciYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3QoV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiYsIFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlKT4mJikgZmluYWw7CisgICAgdm9pZCBxdWVy
eShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3Im
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Np
b25TdGF0ZT4pPiYmKSBmaW5hbDsKICAgICB2b2lkIGFkZE9ic2VydmVyKFdlYkNvcmU6OlBlcm1p
c3Npb25PYnNlcnZlciYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoV2ViQ29yZTo6
UGVybWlzc2lvbk9ic2VydmVyJikgZmluYWw7CiAKQEAgLTYyLDcgKzYxLDcgQEAgcHJpdmF0ZToK
ICAgICBzdHJ1Y3QgUGVybWlzc2lvblJlcXVlc3QgewogICAgICAgICBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gb3JpZ2luOwogICAgICAgICBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciBkZXNj
cmlwdG9yOwotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBlcm1pc3Np
b25TdGF0ZSk+IGNvbXBsZXRpb25IYW5kbGVyOworICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPik+IGNvbXBsZXRpb25I
YW5kbGVyOwogICAgICAgICBib29sIGlzV2FpdGluZ0ZvclJlcGx5IHsgZmFsc2UgfTsKICAgICB9
OwogICAgIERlcXVlPFBlcm1pc3Npb25SZXF1ZXN0PiBtX3JlcXVlc3RzOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ3MDE5ODMyZTA2YjM1NzAw
OTBhZGUwNWQ1OWQ2YjJmZmI0MWIwMTkuLjRhZDM0ODc2ZmVkZmIxODZhNTFkYWUxNTI4OGQyMDQy
NzI1NjAxYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMi0wMi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgdG8gcXVlcnkgY2FtZXJhIGFuZCBtaWNy
b3Bob25lIHBlcm1pc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzYxMzgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRl
Lm1tOgorICAgICAgICAoLVtVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBfd2ViVmlldzpxdWVy
eVBlcm1pc3Npb246Zm9yT3JpZ2luOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRVc2VyTWVkaWFQZXJtaXNzaW9uLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZVVJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVVSURlbGVnYXRlLm1tOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpxdWVyeVBlcm1pc3Npb24pOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKwogMjAyMi0wMi0w
MyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEFs
bG93IHVzaW5nIFNUSVggVHdvIGluIGxheW91dCB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyZDcxMDE4OGI3MDgzYTg3OTY1YWFiNTRkZjRhMjFjMjI5MDQ5YTk5Li4zMzMwZjU2Zjg0
NTk3MDQwNjQ0YmZmYzk5ZjhiNGMyMDc1YTJjMTcyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTQsNiArNTQsNyBAQAogCQkwNzQ5OTQ0MjFFQTUwMzRCMDAwREE0NEYgLyogb25kZXZpY2Vj
aGFuZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QTQxMEY0RDE5QUY3QkVGMDAyRUJBQjYgLyogb25kZXZpY2VjaGFuZ2UuaHRtbCAq
LzsgfTsKIAkJMDc0OTk0NDIxRUE1MDM0QjAwMERBNDVFIC8qIGdldFVzZXJNZWRpYUF1ZGlvVmlk
ZW9DYXB0dXJlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUM1IC8qIGdldFVzZXJNZWRpYUF1ZGlv
VmlkZW9DYXB0dXJlLmh0bWwgKi87IH07CiAJCTA3NDk5NDUyMUVBNTAzNEIwMDBEQTQ0RSAvKiBn
ZXRVc2VyTWVkaWEyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFCQUY0RTIyNUFDOURCODAwRDgyRjMyIC8qIGdldFVzZXJNZWRpYTIu
aHRtbCAqLzsgfTsKKwkJMDc0OTk0NTIxRUE1MDM0QjAwMERBNDZFIC8qIGdldFVzZXJNZWRpYVBl
cm1pc3Npb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTk4NTI0RjI3QUQ3QjcwMDA1NDc3QjcgLyogZ2V0VXNlck1lZGlhUGVybWlz
c2lvbi5odG1sICovOyB9OwogCQkwNzVBOUNGNTI2MTc3MjE4MDA2REZBM0EgLyogTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc1QTlDRjQyNjE3NzIxNzAwNkRGQTNBIC8qIE1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yVGVzdC5tbSAqLzsgfTsKIAkJMDc2RTUwN0YxRjQ1MTNENjAwNkU5RjVBIC8qIExvZ2dp
bmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2
RTUwN0UxRjQ1MDMxRTAwNkU5RjVBIC8qIExvZ2dpbmcuY3BwICovOyB9OwogCQkwNzdBNUFGMzIz
MDYzOEE2MDBBNzEwNUMgLyogQWNjZXNzaWJpbGl0eVRlc3RQbHVnaW4ubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzQ2NjQ1ODIyRkY2MzA1MDBFMzQ1
MUEgLyogQWNjZXNzaWJpbGl0eVRlc3RQbHVnaW4ubW0gKi87IH07CkBAIC0xMzY0LDYgKzEzNjUs
NyBAQAogCQkJCTA3NDk5NDQyMUVBNTAzNEIwMDBEQTQ0RSAvKiBnZXRVc2VyTWVkaWEuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkwNzQ5OTQ1MjFFQTUwMzRCMDAwREE0NEUgLyogZ2V0
VXNlck1lZGlhMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTA3NDk5NDQyMUVBNTAz
NEIwMDBEQTQ1RSAvKiBnZXRVc2VyTWVkaWFBdWRpb1ZpZGVvQ2FwdHVyZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAorCQkJCTA3NDk5NDUyMUVBNTAzNEIwMDBEQTQ2RSAvKiBnZXRVc2VyTWVk
aWFQZXJtaXNzaW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ2QTA5NUIxRUQ4
QTZFNjAwRDRBQTU1IC8qIGdpZi1hbmQtZmlsZS1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTU3MzI1NUE1MjIxMzlCQzcwMDM5NkFFOCAvKiBoZWxsb3dvcmxkLndlYmFyY2hp
dmUgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8q
IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0x
OTU2LDYgKzE5NTgsNyBAQAogCQk0MTg4MkYwMjIxMDEwQTcwMDAyRkYyODggLyogUHJvY2Vzc1By
ZVdhcm1pbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9j
ZXNzUHJlV2FybWluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4RkNCRDUy
NzA3MDY2MTAwRjk2RUNBIC8qIFB1c2hBUEkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQdXNoQVBJLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTk3M0I1QzFBRjIyODc1MDA2QzdCMzYgLyogU2hhcmVkQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxOTg1MjRGMjdBRDdCNzAwMDU0NzdCNyAvKiBnZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBnZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQkFGNEUyMjVB
QzlEQjgwMEQ4MkYzMiAvKiBnZXRVc2VyTWVkaWEyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBnZXRVc2VyTWVkaWEyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxRTY3QTg0MjVEMTZFODMwMDdCMEE0QyAvKiBTVFVOTWVzc2FnZVBhcnNpbmdUZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNUVU5NZXNzYWdlUGFyc2luZ1Rl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDA3N0JCMDIzMTQ0OUQyMDAx
NzlFMkQgLyogRGF0YURldGVjdG9yc1Rlc3RJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBEYXRhRGV0ZWN0b3JzVGVzdElPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQ2ODUsNiArNDY4OCw3IEBACiAJCQkJNEE0MTBGNEQxOUFGN0JFRjAw
MkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovLAogCQkJCTQxQkFGNEUyMjVBQzlEQjgwMEQ4
MkYzMiAvKiBnZXRVc2VyTWVkaWEyLmh0bWwgKi8sCiAJCQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVC
QUM1IC8qIGdldFVzZXJNZWRpYUF1ZGlvVmlkZW9DYXB0dXJlLmh0bWwgKi8sCisJCQkJNDE5ODUy
NEYyN0FEN0I3MDAwNTQ3N0I3IC8qIGdldFVzZXJNZWRpYVBlcm1pc3Npb24uaHRtbCAqLywKIAkJ
CQlCQ0JEMzcyRTEyNUFCQkU2MDBEMkMyOUYgLyogaWNvbi5wbmcgKi8sCiAJCQkJMUNDODBDRTky
NDc0RjFGNzAwNERDNDg5IC8qIGlkZW1wb3RlbnQtbW9kZS1hdXRvc2l6aW5nLW9ubHktaG9ub3Jz
LXBlcmNlbnRhZ2VzLmh0bWwgKi8sCiAJCQkJQ0UzNTI0RjUxQjE0MkJCQjAwMjhBN0M1IC8qIGlu
cHV0LWZvY3VzLWJsdXIuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0dldFVzZXJNZWRpYS5tbQppbmRleCA2NWJmYmRlZjA4MjI0NjA4MjNjZmQ2MWFhMzcy
ODc0OTViMmIxZGE0Li40M2Y2ZDZkYjU3NDk5NjNlY2MxMDEzNzhmMjYyNGRmOTc3YjNhMTNmIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1t
CkBAIC05NzIsNiArOTcyLDkxIEBAIFRFU1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2Fs
dHMpCiAgICAgW2RlbGVnYXRlIHdhaXRVbnRpbFByb21wdGVkXTsKIH0KIAorCitzdGF0aWMgX1dL
RXhwZXJpbWVudGFsRmVhdHVyZSAqcGVybWlzc2lvbnNBUElFbmFibGVkRXhwZXJpbWVudGFsRmVh
dHVyZSgpCit7CisgICAgc3RhdGljIFJldGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJlPiB0
aGVGZWF0dXJlOworICAgIGlmICh0aGVGZWF0dXJlKQorICAgICAgICByZXR1cm4gdGhlRmVhdHVy
ZS5nZXQoKTsKKworICAgIE5TQXJyYXkgKmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVy
aW1lbnRhbEZlYXR1cmVzXTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1
cmUgaW4gZmVhdHVyZXMpIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAiUGVy
bWlzc2lvbnNBUElFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIHRoZUZlYXR1cmUgPSBmZWF0dXJl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRoZUZl
YXR1cmUuZ2V0KCk7Cit9CisKK1RFU1QoV2ViS2l0MiwgQ2FwdHVyZVBlcm1pc3Npb24pCit7Cisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGluaXRpYWxpemVN
ZWRpYUNhcHR1cmVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6cGVybWlzc2lvbnNBUElFbmFibGVkRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAg
IGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2Nd
IGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVy
XSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3Vt
Il07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29u
ZmlnLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0
dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6
ZGVsZWdhdGUuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRU
ZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhUGVybWlzc2lvbiJdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgW2RlbGVnYXRl
IHNldEF1ZGlvRGVjaXNpb246V0tQZXJtaXNzaW9uRGVjaXNpb25Qcm9tcHRdOworICAgIFtkZWxl
Z2F0ZSBzZXRWaWRlb0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uUHJvbXB0XTsKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2hlY2tQZXJtaXNzaW9uKCdt
aWNyb3Bob25lJywgJ3Byb21wdCcpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiY2hlY2tQZXJtaXNzaW9uKCdjYW1lcmEnLCAncHJvbXB0JykiXTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKwor
ICAgIFtkZWxlZ2F0ZSBzZXRBdWRpb0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3JhbnRd
OworICAgIFtkZWxlZ2F0ZSBzZXRWaWRlb0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3Jh
bnRdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Bl
cm1pc3Npb24oJ21pY3JvcGhvbmUnLCAnZ3JhbnRlZCcpIl07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNoZWNrUGVybWlzc2lvbignY2FtZXJhJywgJ2dyYW50
ZWQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9
IGZhbHNlOworCisgICAgLy8gQWx0aG91Z2ggRGVueSwgd2UgZXhwZWN0IHByb21wdCBpcyBleHBv
c2VkIHNpbmNlIHdlIGRvIG5vdCB0cnVzdCB0aGUgcGFnZSB0byBjYWxsIGdldFVzZXJNZWRpYS4K
KyAgICBbZGVsZWdhdGUgc2V0QXVkaW9EZWNpc2lvbjpXS1Blcm1pc3Npb25EZWNpc2lvbkRlbnld
OworICAgIFtkZWxlZ2F0ZSBzZXRWaWRlb0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uRGVu
eV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNoZWNrUGVy
bWlzc2lvbignbWljcm9waG9uZScsICdwcm9tcHQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Npb24oJ2NhbWVyYScsICdwcm9tcHQn
KSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZh
bHNlOworCisgICAgLy8gTm93IHRoYXQgd2UgZ2V0VXNlck1lZGlhIGhhcyBiZWVuIGNhbGxlZCwg
d2UgY2FuIGdvIHdpdGggZGVueS4KKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiY2FwdHVyZVZpZGVvKCkiXTsKKyAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0
ZWRdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Bl
cm1pc3Npb24oJ21pY3JvcGhvbmUnLCAncHJvbXB0JykiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2hlY2tQZXJtaXNzaW9uKCdjYW1lcmEnLCAnZGVuaWVk
JykiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjYXB0
dXJlQXVkaW8oKSJdOworICAgIFtkZWxlZ2F0ZSB3YWl0VW50aWxQcm9tcHRlZF07CisgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNoZWNrUGVybWlzc2lvbignbWlj
cm9waG9uZScsICdkZW5pZWQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Npb24oJ2NhbWVyYScsICdkZW5pZWQnKSJdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNl
ck1lZGlhUGVybWlzc2lvbi5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
Z2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NTg2Y2MzNWU5YjE1Zjg5
Mzc4NjM5MmUwODdjMmFkOTQwZGYzOWQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRVc2VyTWVkaWFQZXJtaXNzaW9uLmh0bWwKQEAgLTAsMCAr
MSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNj
cmlwdD4KKyAgICAgICAgICAgIGxldCBzdHJlYW0gPSBudWxsOworCisgICAgICAgICAgICBmdW5j
dGlvbiBzdG9wKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0uZ2V0VHJh
Y2tzKCkuZm9yRWFjaCh0cmFjayA9PiB7IHRyYWNrLnN0b3AoKSB9KTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gY2FwdHVyZUF1ZGlvKCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86
IHRydWV9KS50aGVuKHMgPT4gc3RyZWFtID0gcyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGNhcHR1cmVWaWRlbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkudGhl
bihzID0+IHN0cmVhbSA9IHMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBjaGVja1Blcm1pc3Npb24obmFtZSwgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBuYXZp
Z2F0b3IucGVybWlzc2lvbnMucXVlcnkoeyBuYW1lIH0pLnRoZW4oKHN0YXR1cykgPT4geworICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1l
c3NhZ2UoZXhwZWN0ZWQgPT0gc3RhdHVzLnN0YXRlICA/ICJQQVNTIiA6ICgiRkFJTEVELCBleHBl
Y3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1dCBnb3QgIiArIHN0YXR1cy5zdGF0ZSkpOworICAgICAg
ICAgICAgICAgIH0sIGVycm9yID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5w
b3N0TWVzc2FnZSgiUGVybWlzc2lvbiBxdWVyeSBmYWlsZWQgd2l0aCAiICsgZXJyb3IpKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8aGVhZD4KKworICAgIDxib2R5
IG9ubG9hZD0id2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCdQ
QVNTJykiPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUuaAppbmRleCBjZWU1MTVhN2Q2
OGYwNjE3ZDRkMjRmODNjNjVkYzc0YTQxNzRlNjgwLi5iNjQzMzFjYWI4OTk4NGVmM2QzZDI4MTBm
OWM4NjA0OGFhMTc3NDk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZS5oCkBAIC01MCw2ICs1MCw3IEBACiAtICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZVBlcm1pc3Np
b25Gb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZToo
V0tGcmFtZUluZm8gKilmcmFtZSB0eXBlOihXS01lZGlhQ2FwdHVyZVR5cGUpdHlwZSBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVybWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lv
bkhhbmRsZXI7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAq
KW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVy
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXpl
ZCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyByZXF1ZXN0RGlzcGxheUNhcHR1cmVQZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3Jp
Z2luICopb3JpZ2luIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgd2l0aFN5
c3RlbUF1ZGlvOihCT09MKXdpdGhTeXN0ZW1BdWRpbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KFdLRGlzcGxheUNhcHR1cmVQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pKWRlY2lzaW9uSGFu
ZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcXVlcnlQZXJtaXNz
aW9uOihOU1N0cmluZyopIG5hbWUgZm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2lu
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1Blcm1pc3Npb25EZWNpc2lvbiBzdGF0ZSkp
Y29tcGxldGlvbkhhbmRsZXI7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUubW0KaW5kZXggMTc0ZjM2OTkz
YTE5ODRjOTUyNmU5OWYxM2VlNjE5YjIzYzIzMDA0MC4uYjBkNjU5ZjljNWJmY2FjYThhYzk5NDMz
ZWY5ODNlZjE1YzNkMThlZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlLm1tCkBAIC03Miw2ICs3MiwxOSBAQAogICAg
IF9nZXREaXNwbGF5TWVkaWFEZWNpc2lvbiA9IGRlY2lzaW9uOwogfQogCistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHF1ZXJ5UGVybWlzc2lvbjooTlNTdHJpbmcqKSBuYW1l
IGZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoV0tQZXJtaXNzaW9uRGVjaXNpb24gc3RhdGUpKWNvbXBsZXRpb25IYW5kbGVyIHsK
KyAgICBpZiAoW25hbWUgaXNFcXVhbFRvU3RyaW5nOkAiY2FtZXJhIl0pIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoX3ZpZGVvRGVjaXNpb24pOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmIChbbmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJtaWNyb3Bob25lIl0pIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoX2F1ZGlvRGVjaXNpb24pOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLUGVy
bWlzc2lvbkRlY2lzaW9uRGVueSk7Cit9CisKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0
eU9yaWdpbiAqKW9yaWdpbiBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIHR5
cGU6KFdLTWVkaWFDYXB0dXJlVHlwZSl0eXBlIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tQ
ZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciB7CiAgICAgKytfbnVt
YmVyT2ZQcm9tcHRzOwogICAgIF93YXNQcm9tcHRlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDI3MDUwOWNlOTRjOTVhMGMyYzI1N2M1NDM3
YTFmYjRhOWMyNjY5MmYuLjRkNmU5MDlhYmQyYTY5MmI0MzdmYmE3MTk5ZDM1NzNkOWM5NDZhYzMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Myw2ICs2
Myw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLUGx1Z2luSW5mb3JtYXRpb24uaD4KICNpbmNsdWRl
IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQ
cm90ZWN0aW9uU3BhY2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tRdWVyeVBlcm1pc3Npb25SZXN1
bHRDYWxsYmFjay5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaD4KQEAgLTM1OSw2ICszNjAsMTEgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJv
b2wgZ3JhbnRlZCkKICAgICBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCA9IGdy
YW50ZWQ7CiB9CiAKK3N0YXRpYyB2b2lkIHF1ZXJ5UGVybWlzc2lvbihXS1N0cmluZ1JlZiwgV0tT
ZWN1cml0eU9yaWdpblJlZiwgV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiBjYWxs
YmFjaykKK3sKKyAgICBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrQ29tcGxldGVXaXRo
UHJvbXB0KGNhbGxiYWNrKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xvc2VPdGhlclBh
Z2UoV0tQYWdlUmVmIHBhZ2UsIFBsYXRmb3JtV2ViVmlldyogdmlldykKIHsKICAgICBXS1BhZ2VD
bG9zZShwYWdlKTsKQEAgLTczMyw4ICs3MzksOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVh
dGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBD
b29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKIAogICAg
IHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhjb25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKLSAg
ICBXS1BhZ2VVSUNsaWVudFYxNiBwYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMTYsIG1fbWFp
bldlYlZpZXcuZ2V0KCkgfSwKKyAgICBXS1BhZ2VVSUNsaWVudFYxOCBwYWdlVUlDbGllbnQgPSB7
CisgICAgICAgIHsgMTgsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3Jl
YXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdl
CiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC04MDksNyArODE1LDkgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25z
KQogICAgICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzLAog
ICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsLAogICAgICAgICBkZWNpZGVQb2xpY3lG
b3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LAotICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0CisgICAgICAgIGRlY2lkZVBvbGlj
eUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsCisgICAgICAgIG51bGxwdHIsIC8v
IHJlcXVlc3RXZWJBdXRoZW50aWNhdGlvbk5vR2VzdHVyZQorICAgICAgICBxdWVyeVBlcm1pc3Np
b24KICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdl
KCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IGRlNzc2Y2M0NTgxMzJiMmM4OGFiMTZlNWJlODA3N2I4Njg4Y2VkNjcuLjMxMmU1NTk1MmE0
NmUyYTAzYTg3MDBkOTE2ZGRlZTljYmM4M2M2NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBxdWVyeSBjYW1lcmEgYW5kIG1p
Y3JvcGhvbmUgcGVybWlzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjEzOAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wZXJtaXNzaW9ucy9uZmMtcGVybWlzc2lv
bi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25z
L3Rlc3QtYmFja2dyb3VuZC1mZXRjaC1wZXJtaXNzaW9uLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0w
Mi0wMyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VHJhbnNmb3JtIGludGVycG9sYXRpb24gc2hvdWxkIGJsZW5kIGJldHdlZW4gc2hhcmVkIHRyYW5z
Zm9ybSBmdW5jdGlvbiBwcmltaXRpdmVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25zL25mYy1wZXJtaXNzaW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGVy
bWlzc2lvbnMvbmZjLXBlcm1pc3Npb24tZXhwZWN0ZWQudHh0CmluZGV4IGMyZmQ2NWU4ZDQwMDJh
NzIzMDE4N2E2MWY1MWMyODJlZmMxYzZiZWMuLjUwZTIwOWZlYjhkNTcxYWI3MGJlMjI2YzRhMDJk
YzQyNjAyNTg0YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGVybWlzc2lvbnMvbmZjLXBlcm1pc3Npb24tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGVybWlzc2lvbnMv
bmZjLXBlcm1pc3Npb24tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1QQVNTIFRlc3Qg
V2ViIE5GQyBQZXJtaXNzaW9uLgorRkFJTCBUZXN0IFdlYiBORkMgUGVybWlzc2lvbi4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9y
dGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGVybWlzc2lvbnMv
dGVzdC1iYWNrZ3JvdW5kLWZldGNoLXBlcm1pc3Npb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wZXJtaXNzaW9ucy90ZXN0LWJhY2tn
cm91bmQtZmV0Y2gtcGVybWlzc2lvbi1leHBlY3RlZC50eHQKaW5kZXggNzg1YmI1ODVmNTE1OTVm
ZGVhMDUyMzQxNjcyMzgxM2M4ZGIyMzE1OS4uYmVhMjBmMDRhODVkYjgwNDUwNmYyZDhkNjVlYTZk
ZTY3YzRmMDdkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wZXJtaXNzaW9ucy90ZXN0LWJhY2tncm91bmQtZmV0Y2gtcGVybWlzc2lvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wZXJtaXNzaW9ucy90ZXN0LWJhY2tncm91bmQtZmV0Y2gtcGVybWlzc2lvbi1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLVBBU1MgVGVzdCBCYWNrZ3JvdW5kIEZldGNoIFBlcm1p
c3Npb24uCitGQUlMIFRlc3QgQmFja2dyb3VuZCBGZXRjaCBQZXJtaXNzaW9uLiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJOb3RTdXBwb3J0ZWRF
cnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451537</attachid>
            <date>2022-02-10 08:05:47 -0800</date>
            <delta_ts>2022-02-11 01:50:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236138-20220210170535.patch</filename>
            <type>text/plain</type>
            <size>73542</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTAzZWVjY2ZiNzQzYmJl
MTU4NmVkYzllODIyNWQxM2FhYWFjMDA5OS4uOWE4ODAxNTAwMmVlYTk5YmFjYmQ5OWVjMjVhNWU3
YzlmMzcyNzk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAyLTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBx
dWVyeSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgcGVybWlzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVcGRhdGUgcXVlcnlQZXJtaXNzaW9uIHRvIGJl
IGFzeW5jIGFzIGl0IG1heSByZXF1aXJlIHRvIGNoZWNrIHRvIFVJUHJvY2Vzcy4KKyAgICAgICAg
Q292ZXJlZCBieSBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvcGVybWlzc2lvbnMvUGVy
bWlzc2lvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1p
c3Npb25zLmNwcDoKKwogMjAyMi0wMi0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgRG8gbm90IGV4cG9zZSBpbiBXZWJJREwgdGhlIHBhcnRzIG9mIHRoZSBw
ZXJtaXNzaW9uIEFQSSB0aGF0IGFyZSBub3QgeWV0IHN1cHBvcnRlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0NzNm
ZmQyMDZmNzQ1MTBiZWIyOWRlNzEyOTY4NTViNjIzNTJkNDA1Li5lODM4MDMxY2ViMmE2YjYxZDFm
NmM5Yjg2NzMwYmUwNWU2ODNhMWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAy
LTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3Vw
cG9ydCB0byBxdWVyeSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgcGVybWlzc2lvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBBZGQgbmV3IFNQSSB0byBxdWVy
eSBmb3IgcGVybWlzc2lvbiAod2l0aG91dCByZXF1ZXN0aW5nIGFueXRoaW5nIHRvIHVzZXIpLgor
ICAgICAgICBVc2UgdGhpcyB0byBpbXBsZW1lbnQgY2FtZXJhL21pY3JvcGhvbmUgcGVybWlzc2lv
bi4KKyAgICAgICAgSW4gY2FzZSBvZiBwZXJtaXNzc2lvbiBwZXJzaXN0ZW50bHkgZGVuaWVkLCBv
bmx5IGV4cG9zZSBpdCBpZiB3ZWIgcGFnZSBhbHJlYWR5IGNhbGxlZCBnZXRVc2VyTWVkaWEuCisg
ICAgICAgIEluIGNhc2Ugb2YgcGVybWlzc2lvbiBub3QgcGVyc2lzdGVudGx5IHNldCwgY29tcHV0
ZSB0aGUgcGVybWlzc2lvbiBzdGF0ZSBhY2NvcmRpbmcgcGFzdCBnZXRVc2VyTWVkaWEgcmVxdWVz
dHMuCisgICAgICAgIEFsc28gYWRkIGdlb2xvY2F0aW9uIG1hcHBpbmcgYXMgYXBwbGljYXRpb25z
IG1pZ2h0IHdhbnQgdG8gc3VwcG9ydCBpdCBhbmQgaXQgbWFrZXMgZXhpc3RpbmcgV1BUIHRlc3Rz
IGhhcHB5LgorICAgICAgICBBZGQgQyBBUEkgYXMgd2VsbCBzbyB0aGF0IFdUUiBjYW4gY29udHJv
bCBwZXJtaXNzaW9uIHF1ZXJ5aW5nLgorCisgICAgICAgIENvdmVyZWQgYnkgQVBJIHRlc3QuCisK
KyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0
Lmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuaDoKKwogMjAyMi0wMi0xMCAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIFJl
bW90ZU1lZGlhU2FtcGxlUHJveHkgdG8gcmVwcmVzZW50IGNhcHR1cmVkIHZpZGVvIGZyYW1lcyB1
c2VkIGluIE1lZGlhIFN0cmVhbXMgYW5kIHByZXNlbnQgaW4gR1BVUApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wZXJtaXNzaW9ucy9QZXJtaXNzaW9uQ29udHJvbGxlci5o
CmluZGV4IDgyNWY4MGY4YWVmM2EzNzM5YTgwYzBlYWMwYTgwYzQ5ZGE4MTBlZGIuLjhiNjliMzVi
ZjExMmEzZTg0YzlhNjViYjZhYzhhNWZlODBhMjhiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25Db250cm9sbGVyLmgKQEAg
LTM4LDggKzM4LDcgQEAgc3RydWN0IFBlcm1pc3Npb25EZXNjcmlwdG9yOwogY2xhc3MgUGVybWlz
c2lvbkNvbnRyb2xsZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGVybWlzc2lvbkNv
bnRyb2xsZXI+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5QZXJtaXNzaW9uQ29udHJvbGxlcigp
ID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIFBlcm1pc3Npb25TdGF0ZSBxdWVyeShDbGllbnRPcmln
aW4mJiwgUGVybWlzc2lvbkRlc2NyaXB0b3ImJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0KENsaWVudE9yaWdpbiYmLCBQZXJtaXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFBlcm1pc3Npb25TdGF0ZSk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcXVl
cnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFBlcm1pc3Npb25EZXNjcmlwdG9yJiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxQZXJtaXNzaW9uU3RhdGU+KT4mJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBhZGRPYnNlcnZlcihQZXJtaXNzaW9uT2JzZXJ2ZXImKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU9ic2VydmVyKFBlcm1pc3Npb25PYnNlcnZlciYpID0g
MDsKIHByb3RlY3RlZDoKQEAgLTUxLDggKzUwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8
RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEdW1teVBlcm1pc3Npb25Db250cm9sbGVyKTsgfQogcHJpdmF0ZToKICAgICBEdW1teVBlcm1p
c3Npb25Db250cm9sbGVyKCkgPSBkZWZhdWx0OwotICAgIFBlcm1pc3Npb25TdGF0ZSBxdWVyeShD
bGllbnRPcmlnaW4mJiwgUGVybWlzc2lvbkRlc2NyaXB0b3ImJikgZmluYWwgeyByZXR1cm4gUGVy
bWlzc2lvblN0YXRlOjpEZW5pZWQ7IH0KLSAgICB2b2lkIHJlcXVlc3QoQ2xpZW50T3JpZ2luJiYs
IFBlcm1pc3Npb25EZXNjcmlwdG9yJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lv
blN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcihQ
ZXJtaXNzaW9uU3RhdGU6OkRlbmllZCk7IH0KKyAgICB2b2lkIHF1ZXJ5KFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYmLCBQZXJtaXNzaW9uRGVzY3JpcHRvciYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8UGVybWlzc2lvblN0YXRlPik+JiYgY2FsbGJhY2spIGZpbmFsIHsgY2Fs
bGJhY2soeyB9KTsgfQogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoUGVybWlzc2lvbk9ic2VydmVyJikg
ZmluYWwgeyB9CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihQZXJtaXNzaW9uT2JzZXJ2ZXImKSBm
aW5hbCB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Np
b25zL1Blcm1pc3Npb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMv
UGVybWlzc2lvbnMuY3BwCmluZGV4IDIxMzNiMmE3MGJiODgyNWNmM2NjNGRjNjEyMDg5MjM0OTVi
OThhMGIuLmFmNThmNzM1ODY3ZGE1OGY3OWM5Yjc5YjE0OGY1YzZmNmVkODhkYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbnMuY3BwCkBA
IC04OSw4ICs4OSwxOSBAQCB2b2lkIFBlcm1pc3Npb25zOjpxdWVyeShKU0M6OlN0cm9uZzxKU0M6
OkpTT2JqZWN0PiBwZXJtaXNzaW9uRGVzY3JpcHRvclZhbHVlLCBETwogCiAgICAgYXV0byogb3Jp
Z2luID0gY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvIG9yaWdpbkRhdGEgPSBv
cmlnaW4gPyBvcmlnaW4tPmRhdGEoKSA6IFNlY3VyaXR5T3JpZ2luRGF0YSB7IH07Ci0gICAgYXV0
byBwZXJtaXNzaW9uU3RhdGUgPSBtX2NvbnRyb2xsZXItPnF1ZXJ5KENsaWVudE9yaWdpbiB7IGNv
bnRleHQtPnRvcE9yaWdpbigpLmRhdGEoKSwgb3JpZ2luRGF0YSB9LCBQZXJtaXNzaW9uRGVzY3Jp
cHRvciB7IHBhcmFtZXRlckRlc2NyaXB0b3IgfSk7Ci0gICAgcHJvbWlzZS5yZXNvbHZlKFBlcm1p
c3Npb25TdGF0dXM6OmNyZWF0ZSgqY29udGV4dCwgcGVybWlzc2lvblN0YXRlLCBwYXJhbWV0ZXJE
ZXNjcmlwdG9yKSk7CisgICAgbV9jb250cm9sbGVyLT5xdWVyeShDbGllbnRPcmlnaW4geyBjb250
ZXh0LT50b3BPcmlnaW4oKS5kYXRhKCksIG9yaWdpbkRhdGEgfSwgUGVybWlzc2lvbkRlc2NyaXB0
b3IgeyBwYXJhbWV0ZXJEZXNjcmlwdG9yIH0sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgcGFyYW1ldGVyRGVzY3JpcHRvciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KGF1dG8gcGVybWlzc2lvblN0YXRlKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjb250ZXh0ID0g
bV9uYXZpZ2F0b3IgPyBtX25hdmlnYXRvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVs
bHB0cjsKKyAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5nbG9iYWxPYmplY3QoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjb250ZXh0LT5wb3N0VGFzayhbcGFyYW1l
dGVyRGVzY3JpcHRvciwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksICBwZXJtaXNzaW9uU3Rh
dGUgPSBXVEZNb3ZlKHBlcm1pc3Npb25TdGF0ZSldKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewor
ICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUo
UGVybWlzc2lvblN0YXR1czo6Y3JlYXRlKGNvbnRleHQsICpwZXJtaXNzaW9uU3RhdGUsIHBhcmFt
ZXRlckRlc2NyaXB0b3IpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQppbmRleCA1MGRkMWQxZmQ5ODZmYmI1NGQxMDhhOTI4
MmQwZWY3NmRiMjg0YmY3Li4yNTkyYTBjOWNiNTZmZWU3ZjI5MjY5MzJhZTc5OWU0MDFhMWQyMjI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YktpdC9IZWFkZXJzLmNtYWtlCkBAIC05OSw2ICs5OSw3IEBAIHNldChXZWJLaXRfUFVCTElDX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuaAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgKKyAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25T
dGF0ZVJlZi5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uQ2FsbGJhY2suaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9i
amVjdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCmluZGV4IDIwYmU3
ODY4MThiZThhMTUyODkzZTkyZjBhOGQ0NTNkY2RhZDkwMzAuLjUzYWYxMGE4NmUxMjlhMTllZDEw
NTEzYTE2MGQ5ZGEwOTdmZTVjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgK
QEAgLTE4Nyw2ICsxODcsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgICAgICBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFjaywKKyAgICAgICAgUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2Fs
bGJhY2ssCiAKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEJ1bmRsZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggN2M4YmQyMzkyNGM0YWI3MTE1NGY1Y2FjN2U3
M2NjNzNkMzk0NThjMC4uY2NiNzIxMTQ1OTk2YTExMzJiOWQzYjZiOGYyYzljZjFkNTM1ZTg2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTE0NCw2ICsxNDQsNyBAQCB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0ZlYXR1cmVz
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DYWxsYmFjayogV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdCogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayogV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2sqIFdLUXVlcnlQZXJtaXNzaW9uUmVz
dWx0Q2FsbGJhY2tSZWY7CiAKIC8qIFdlYktpdDIgQnVuZGxlIHR5cGVzICovCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IDkxNDYwNTJiNTYwNDY4NWI0NDNlODI2NjExNTQwOTg3YjdlZjk3NjYuLjE2ZmU2Zjlj
MDQ0NDE2NGFlNjE5N2RhYmZiMjVjMzJjNjBkNzI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTMwLDYg
KzUzMCw3IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCiBVSVBy
b2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKIFVJUHJvY2Vz
cy9BUEkvQy9XS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKK1VJUHJvY2Vzcy9BUEkvQy9XS1F1ZXJ5UGVybWlz
c2lvblJlc3VsdENhbGxiYWNrLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUdyb3VwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApp
bmRleCA5Njg1MDU0OTI5Y2ZkYzM1ZTk4YTE1ZjA1NGY3ODM5ZTFkZjRhZTA4Li5mYmNlOTQ1ZTQ1
ODZmMmRmN2U3NTBmYTk4MDc2NjQ0ODdkZTI4NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
Q29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJl
Y3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01vZGFsQ29udGFpbmVyVHlwZXMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Blcm1pc3Npb25TdGF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yMjIsNiArMjIzLDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQogCisgICAgdmlydHVhbCB2b2lkIHF1ZXJ5
UGVybWlzc2lvbihjb25zdCBXVEY6OlN0cmluZyYgcGVybWlzc2lvbk5hbWUsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKHsgfSk7IH0KKwogI2lmIEVOQUJMRShXRUJYUikgJiYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uT25YUlNlc3Npb25GZWF0dXJlcyhX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IFBsYXRmb3JtWFI6OlNlc3Npb25Nb2RlLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1
cmVMaXN0JiBncmFudGVkLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZlYXR1cmVMaXN0JiAv
KiBjb25zZW50UmVxdWlyZWQgKi8sIGNvbnN0IFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxp
c3QmIC8qIGNvbnNlbnRPcHRpb25hbCAqLywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFBsYXRmb3JtWFI6OkRldmljZTo6RmVhdHVyZUxpc3Q+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOyB9ICAgIAogICAgIHZpcnR1YWwg
dm9pZCBzdGFydFhSU2Vzc2lvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmV0YWluUHRyPGlkPik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIobmlsKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAppbmRleCA1NmUwODQ0ODg3Mjk5ZTgwYWM2OTU1YjBlOTMyY2FhNTBmNWQ0YTkxLi44YjliNjBh
MDAyYzUwY2FlYTJjMWQ0MDc3Y2JlYjYyZDk2ZjkxOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNzksNiArNzksNyBAQCBjbGFzcyBEb3dubG9hZFBy
b3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q7CitjbGFzcyBRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjazsKIGNsYXNzIFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHk7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwpAQCAt
MTM2LDYgKzEzNyw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0hpdFRlc3RSZXN1bHRSZWYsIEFQ
STo6SGl0VGVzdFJlc3VsdCkKIFdLX0FERF9BUElfTUFQUElORyhXS0ljb25EYXRhYmFzZVJlZiwg
V2ViSWNvbkRhdGFiYXNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJ
bnNwZWN0b3JVSVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2tSZWYsIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKQorV0tf
QUREX0FQSV9NQVBQSU5HKFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tSZWYsIFF1ZXJ5
UGVybWlzc2lvblJlc3VsdENhbGxiYWNrKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVzc2FnZUxp
c3RlbmVyUmVmLCBBUEk6Ok1lc3NhZ2VMaXN0ZW5lcikKIFdLX0FERF9BUElfTUFQUElORyhXS05h
dmlnYXRpb25BY3Rpb25SZWYsIEFQSTo6TmF2aWdhdGlvbkFjdGlvbikKIFdLX0FERF9BUElfTUFQ
UElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBBUEk6Ok5hdmlnYXRpb25EYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggMjBhMWUzMDJkZGJkMmE2MWUzYzVh
MmNkNWVmMTFkMzVjOTRiZmZiYS4uNjA0N2M1ZmE0ZTczNjg2NzU2NjIyMmQ2M2Y2NjU3MmFmOTRj
ZDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC02NSw2
ICs2NSw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNp
bmNsdWRlICJQYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCisjaW5jbHVkZSAi
UXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVk
ZSAiV0tQYWdlUG9saWN5Q2xpZW50SW50ZXJuYWwuaCIKQEAgLTExOCw3ICsxMTksNyBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlUG9saWN5Q2xpZW50QmFzZT4gewogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50QmFzZT4gewot
ICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYx
LCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBX
S1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1Bh
Z2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdl
VUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQYWdl
VUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1LCBXS1BhZ2VVSUNsaWVudFYxNiwgV0tQYWdl
VUlDbGllbnRWMTc+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNs
aWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVu
dFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2
LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBX
S1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBX
S1BhZ2VVSUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1LCBX
S1BhZ2VVSUNsaWVudFYxNiwgV0tQYWdlVUlDbGllbnRWMTcsIFdLUGFnZVVJQ2xpZW50VjE4PiBW
ZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTIxOTAsNiArMjE5
MSwxNSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29u
c3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogCiAgICAgICAgICAgICBtX2NsaWVudC5k
ZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdl
KSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUoa2V5U3lzdGVtKS5w
dHIoKSksIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSk7CiAgICAgICAgIH0KKworICAgICAgICB2
b2lkIHF1ZXJ5UGVybWlzc2lvbihjb25zdCBXVEY6OlN0cmluZyYgcGVybWlzc2lvbk5hbWUsIEFQ
STo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBm
aW5hbAorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LnF1ZXJ5UGVybWlzc2lv
bikgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9jbGllbnQucXVlcnlQ
ZXJtaXNzaW9uKHRvQVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUocGVybWlzc2lvbk5hbWUpLnB0cigp
KSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKFF1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrOjpj
cmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSk7CisgICAgICAgIH0KICAg
ICB9OwogCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRVSUNsaWVudChtYWtlVW5pcXVlPFVJQ2xp
ZW50Pih3a0NsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50LmgKaW5kZXggNjZmYTdmOTQ4YmRjMzU2NjlmYTdkYjVhMDE1MzUzMzNiZWZhNTVl
Yy4uZTMzMTg3NDc3ZDNkNmU3NjE0Yjg5MThkNDY3YjMwODQ3Zjk0Mzg2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC0xNDAsNyArMTQw
LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlUmVxdWVzdFdlYkF1dGhlbnRpY2F0aW9uTm9HZXN0
dXJlQ2FsbGJhY2spKCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwgV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25DYWxsYmFja1JlZiBjYWxsYmFjayk7CiAKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBv
bGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVm
IHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wT3JpZ2luLCBXS1N0cmluZ1JlZiBrZXlTeXN0
ZW0sIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOwotCit0
eXBlZGVmIHZvaWQgKCpXS1F1ZXJ5UGVybWlzc2lvbkNhbGxiYWNrKShXS1N0cmluZ1JlZiBwZXJt
aXNzaW9uTmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLUXVlcnlQZXJtaXNz
aW9uUmVzdWx0Q2FsbGJhY2tSZWYgY2FsbGJhY2spOwogLy8gRGVwcmVjYXRlZAogdHlwZWRlZiBX
S1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgICAgICAoKldLUGFnZU1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBh
Z2UsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTY5Niw5ICsxNjk2LDEyNyBAQCB0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudFYxNyB7CiAKICAgICAvLyBWZXJzaW9uIDE3LgogICAgIFdLUGFnZVJl
cXVlc3RXZWJBdXRoZW50aWNhdGlvbk5vR2VzdHVyZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdFdlYkF1dGhlbnRpY2F0aW9uTm9HZXN0dXJlOwotCiB9IFdLUGFnZVVJQ2xpZW50
VjE3OwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxOCB7CisgICAgV0tQYWdlVUlD
bGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFn
ZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAg
V0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VG
b2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVu
SmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5K
YXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAg
IHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VT
ZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25D
bGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1
dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5k
bGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5v
dEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsK
KyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFy
c0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRv
b2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAg
V0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0Jhcklz
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdL
UGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAg
ICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJh
bWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGll
bnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAg
IFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdo
dDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFk
ZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFt
ZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8g
VXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VT
YXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgor
ICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAg
ICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAg
IFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYx
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOwor
CisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAg
IFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5l
ZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2du
aXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJl
IGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1Bh
Z2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAg
ICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdL
UGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0
QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFT
Y3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2
YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICB2b2lkKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVudXNlZDU7IC8vIFVzZWQgdG8gYmUgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UuCisK
KyAgICAvLyBWZXJzaW9uIDYuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25m
aXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dENvbmZpcm07CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdLQ2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luOworCisgICAgLy8gVmVyc2lv
biA3LgorICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdL
RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lOworCisgICAgLy8gVmVyc2lvbiA4
LgorICAgIFdLUmVxdWVzdFBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdFBvaW50ZXJMb2NrOworICAgIFdLRGlkTG9zZVBvaW50
ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlk
TG9zZVBvaW50ZXJMb2NrOworCisgICAgLy8gVmVyc2lvbiA5LgorICAgIFdLSGFuZGxlQXV0b3Bs
YXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFu
ZGxlQXV0b3BsYXlFdmVudDsKKworICAgIC8vIFZlcnNpb24gMTAuCisgICAgV0tIYXNWaWRlb0lu
UGljdHVyZUluUGljdHVyZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBo
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZTsKKyAgICBXS0RpZEV4Y2VlZEJhY2tn
cm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmRDYWxsYmFjayAgICAgICAgIGRpZEV4
Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ7CisKKyAgICAvLyBW
ZXJzaW9uIDExLgorICAgIFdLUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3Jk
QXBwZWFyYW5jZUNhbGxiYWNrICAgICAgICAgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFz
c3dvcmRBcHBlYXJhbmNlOworCisgICAgLy8gVmVyc2lvbiAxMi4KKyAgICBXS1BhZ2VSZXF1ZXN0
U3RvcmFnZUFjY2Vzc0NvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybTsKKworICAgIC8vIFZlcnNpb24gMTMuCisgICAgV0tQ
YWdlU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrICAg
ICAgICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzOworCisg
ICAgLy8gVmVyc2lvbiAxNC4KKyAgICBXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFu
ZWw7CisKKyAgICAvLyBWZXJzaW9uIDE1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgZGVjaWRlUG9saWN5Rm9y
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKworICAgIC8vIFZlcnNpb24gMTYu
CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dENhbGxiYWNrICAgICAgICBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0OworCisgICAgLy8gVmVyc2lvbiAxNy4KKyAgICBXS1BhZ2VSZXF1ZXN0V2ViQXV0aGVu
dGljYXRpb25Ob0dlc3R1cmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RXZWJB
dXRoZW50aWNhdGlvbk5vR2VzdHVyZTsKKworICAgIC8vIFZlcnNpb24gMTguCisgICAgV0tRdWVy
eVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBxdWVyeVBlcm1pc3Npb247Cit9IFdLUGFnZVVJQ2xpZW50VjE4OworCiAjaWZkZWYgX19j
cGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNGI4YmY0NDE2NjE4Y2Y0ZDg2ZDQyZGQwZmExMmJlMWYxY2FhOTkxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tRdWVyeVBlcm1pc3Np
b25SZXN1bHRDYWxsYmFjay5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNr
LmgiCisKKyNpbmNsdWRlICJRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oIgorI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBX
S1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4g
dG9BUEkoUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2s6OkFQSVR5cGUpOworfQorCit2b2lk
IFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tDb21wbGV0ZVdpdGhEZW5pZWQoV0tRdWVy
eVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICByZXR1cm4gdG9J
bXBsKGNhbGxiYWNrKS0+c2V0UGVybWlzc2lvbihXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU6OkRl
bmllZCk7Cit9CisKK3ZvaWQgV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja0NvbXBsZXRl
V2l0aEdyYW50ZWQoV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiBjYWxsYmFjaykK
K3sKKyAgICByZXR1cm4gdG9JbXBsKGNhbGxiYWNrKS0+c2V0UGVybWlzc2lvbihXZWJDb3JlOjpQ
ZXJtaXNzaW9uU3RhdGU6OkdyYW50ZWQpOworfQorCit2b2lkIFdLUXVlcnlQZXJtaXNzaW9uUmVz
dWx0Q2FsbGJhY2tDb21wbGV0ZVdpdGhQcm9tcHQoV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxs
YmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICByZXR1cm4gdG9JbXBsKGNhbGxiYWNrKS0+c2V0UGVy
bWlzc2lvbihXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGU6OlByb21wdCk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1F1ZXJ5UGVybWlzc2lv
blJlc3VsdENhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTIyOGU3MTM2MDBlMzkwYzYyNjZhZTU4Zjc4
YjRlMGJlNzBjZGQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaApAQCAtMCwwICsxLDQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+
CisKKyNpZmRlZiBfX2NwbHVzcGx1cyAKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrR2V0VHlwZUlEKHZvaWQp
OworCitXS19FWFBPUlQgdm9pZCBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrQ29tcGxl
dGVXaXRoRGVuaWVkKFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tSZWYgY2FsbGJhY2sp
OworV0tfRVhQT1JUIHZvaWQgV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja0NvbXBsZXRl
V2l0aEdyYW50ZWQoV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiBjYWxsYmFjayk7
CitXS19FWFBPUlQgdm9pZCBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrQ29tcGxldGVX
aXRoUHJvbXB0KFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2tSZWYgY2FsbGJhY2spOwor
CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjay5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DYWxsYmFjay5oCmluZGV4IGI4YWVhZmM2OTg0YmE5NmY1NDg5MmU3MzJhZmVhM2EwNjNj
OWM3MmQuLmI1MjY0OGZlNTkzNjgwODU0N2VkMjAxYTJhYzE3OTE3NDY0MDBhNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAog
I2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KIAotI2lmZGVmIF9fY3BsdXNwbHVzCisjaWZkZWYg
X19jcGx1c3BsdXMgCiBleHRlcm4gIkMiIHsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBk
NmE3YWI2ODBhYzdhZWM3YzgzMGVlZDc1NzEyYmIxNjVhZjVjY2FhLi4wZDg2NzhmYTY5YzM5ZDVl
YTQ4OTA3OTcyYmFjZTU0ZWNlNGRlOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTE2MSw3ICsxNjEs
NyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFj
dGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMg
Kil3aW5kb3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tXZWJWaWV3ICp3
ZWJWaWV3KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwg
aW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd2VkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvck9yaWdp
bjooV0tTZWN1cml0eU9yaWdpbiopb3JpZ2luIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZv
ICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS1Blcm1pc3Npb25EZWNpc2lvbiBk
ZWNpc2lvbikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSk7Ci0KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcXVlcnlQ
ZXJtaXNzaW9uOihOU1N0cmluZyopbmFtZSBmb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4qKW9y
aWdpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tQZXJtaXNzaW9uRGVjaXNpb24gcGVy
bWlzc2lvblN0YXRlKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTooTlNTdHJp
bmcgKiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZWRpdG9yU3RhdGVEaWRDaGFuZ2U6KE5TRGljdGlvbmFyeSAq
KWVkaXRvclN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCAzZDFl
NjRjMjE1YTIyM2ZiNzE2OGZmZDQyYmUzNTg0ODhmNTI1NGIxLi5mNWNhMWQ1NWNmNzQ1N2E4MTc0
ZDc3ZDEzMTBiY2EzNWYxZGIzOWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBy
ZXF1ZXN0V2ViQXV0aGVudGljYXRpb25Ob0dlc3R1cmUoQVBJOjpTZWN1cml0eU9yaWdpbiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogI2VuZGlmCiAgICAgICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQgcXVlcnlQZXJtaXNzaW9uKGNvbnN0IFN0cmlu
ZyYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPik+JiYpIGZpbmFsOwogICAgICAgICB2b2lk
IGRpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4oV2ViUGFnZVByb3h5JikgZmluYWw7CiAg
ICAgICAgIHZvaWQgZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4oV2ViUGFnZVByb3h5
JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CmluZGV4IGY5ZDYzMTM5YzAzZjgxNWE2ZTcwMGU5YjNjYzkxOTNhN2Q0ZWQ2NGMuLjdlNTlhYzcw
NzdiYWYzNzU5MjQ3NmE2MzUyNmQwY2Q3NTU1ZGUyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTc0Miw2ICsxNzQyLDQzIEBAIHZvaWQgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvblJlcXVlc3QoV2ViCiAgICAgfSkuZ2V0KCldOwogfQogCit2b2lkIFVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpxdWVyeVBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBwZXJtaXNzaW9uTmFtZSwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPik+JiYgY2FsbGJhY2spCit7CisgICAgaWYg
KCFtX3VpRGVsZWdhdGUpIHsKKyAgICAgICAgY2FsbGJhY2soV2ViQ29yZTo6UGVybWlzc2lvblN0
YXRlOjpQcm9tcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBkZWxlZ2F0
ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdl
dCgpOworICAgIGlmICghZGVsZWdhdGUpIHsKKyAgICAgICAgY2FsbGJhY2soV2ViQ29yZTo6UGVy
bWlzc2lvblN0YXRlOjpQcm9tcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCFbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpxdWVyeVBl
cm1pc3Npb246Zm9yT3JpZ2luOmNvbXBsZXRpb25IYW5kbGVyOildKSB7CisgICAgICAgIGNhbGxi
YWNrKFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6UHJvbXB0KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6
OmNyZWF0ZShkZWxlZ2F0ZSwgQHNlbGVjdG9yKF93ZWJWaWV3OnF1ZXJ5UGVybWlzc2lvbjpmb3JP
cmlnaW46Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgW2RlbGVnYXRlIF93ZWJWaWV3Om1fdWlE
ZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIHF1ZXJ5UGVybWlzc2lvbjpwZXJtaXNzaW9u
TmFtZSBmb3JPcmlnaW46d3JhcHBlcihvcmlnaW4pIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9j
a1B0cihbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgY2hlY2tlciA9IFdURk1vdmUoY2hl
Y2tlcildKFdLUGVybWlzc2lvbkRlY2lzaW9uIHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5k
bGVyKCk7CisgICAgICAgIHN3aXRjaCAocGVybWlzc2lvblN0YXRlKSB7CisgICAgICAgIGNhc2Ug
V0tQZXJtaXNzaW9uRGVjaXNpb25Qcm9tcHQ6CisgICAgICAgICAgICBjYWxsYmFjayhXZWJDb3Jl
OjpQZXJtaXNzaW9uU3RhdGU6OlByb21wdCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBXS1Blcm1pc3Npb25EZWNpc2lvbkdyYW50OgorICAgICAgICAgICAgY2FsbGJhY2soV2Vi
Q29yZTo6UGVybWlzc2lvblN0YXRlOjpHcmFudGVkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFdLUGVybWlzc2lvbkRlY2lzaW9uRGVueToKKyAgICAgICAgICAgIGNhbGxiYWNr
KFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfSkuZ2V0KCldOworfQorCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpkaWRFbmFibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluKFdlYlBhZ2VQcm94eSYpCiB7CiAgICAg
aWYgKCFtX3VpRGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9R
dWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGVlYmI2ZTkzMzNk
MDg5MmMzMDkzNGVkNDNlZGU1MWQ4NDhhMGY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Blcm1pc3Npb25TdGF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUXVlcnlQ
ZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2sgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjaz4geworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8UXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2s+IGNyZWF0ZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjayhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSkpOworICAgIH0KKyAgICB+UXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2soKQorICAgIHsK
KyAgICAgICAgaWYgKG1fY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgICAgICBtX2NvbXBsZXRp
b25IYW5kbGVyKHsgfSk7CisgICAgfQorICAgIHZvaWQgc2V0UGVybWlzc2lvbihXZWJDb3JlOjpQ
ZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvbikgeyBtX2NvbXBsZXRpb25IYW5kbGVyKHBlcm1pc3Np
b24pOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2Fs
bGJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1p
c3Npb25TdGF0ZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCisgICAgeyB9CisKKyAgICBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0YXRl
Pik+IG1fY29tcGxldGlvbkhhbmRsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA5ZjM2MzEwMTllOGE0Yzk1Y2M1
NzJmYWVhY2U0NjFlNjRhOTYzMjU1Li43ZWY2OTdjZTQxNzJlOTUyNTY4MDFlZDMzNzUyNmFjMzEy
NDAwNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAjaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VJZEhhc2hT
YWx0U3RvcmFnZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVBlcm1p
c3Npb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUg
IldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCkBAIC0zMzksNyArMzQwLDcgQEAgY29uc3QgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OnMKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoIWdyYW50ZWRS
ZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVTY2hlbWVIb3N0
UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKQorICAgICAgICBp
ZiAoZnJhbWVJRCAmJiBncmFudGVkUmVxdWVzdC0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPnJlcXVpcmVz
VmlkZW9DYXB0dXJlKCkpCkBAIC02NzEsNiArNjcyLDM1IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclNwZWVj
aFJlCiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QobV9wYWdlLCAqZnJhbWUsIFdURk1vdmUoYXBpUmVxdWVzdGluZ09yaWdpbiks
IFdURk1vdmUoYXBpVG9wT3JpZ2luKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAKK2Jvb2wgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNob3VsZENoYW5nZURlbmllZFRvUHJv
bXB0Rm9yQ2FtZXJhKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKSBjb25zdAoreworICAgIGlm
ICghU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUo
KS5hY3RpdmVVUkwoKSktPmlzU2FtZVNjaGVtZUhvc3RQb3J0KG9yaWdpbi50b3BPcmlnaW4uc2Vj
dXJpdHlPcmlnaW4oKS5nZXQoKSkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJu
ICFhbnlPZihtX2RlbmllZFJlcXVlc3RzLCBbXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1
ZXN0LmlzVmlkZW9EZW5pZWQ7IH0pCisgICAgICAgICYmICFhbnlPZihtX3ByZWdyYW50ZWRSZXF1
ZXN0cywgW10oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVxdWVzdC0+cmVxdWlyZXNWaWRlb0Nh
cHR1cmUoKTsgfSkKKyAgICAgICAgJiYgIWFueU9mKG1fZ3JhbnRlZFJlcXVlc3RzLCBbXShhdXRv
JiByZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgpOyB9KTsK
K30KKworYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2hvdWxk
Q2hhbmdlRGVuaWVkVG9Qcm9tcHRGb3JNaWNyb3Bob25lKGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKSBjb25zdAoreworICAgIGlmICghU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
bV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSktPmlzU2FtZVNjaGVtZUhvc3RQb3J0
KG9yaWdpbi50b3BPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgcmV0dXJuICFhbnlPZihtX2RlbmllZFJlcXVlc3RzLCBbXShhdXRvJiBy
ZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LmlzQXVkaW9EZW5pZWQ7IH0pCisgICAgICAgICYmICFh
bnlPZihtX3ByZWdyYW50ZWRSZXF1ZXN0cywgW10oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVx
dWVzdC0+cmVxdWlyZXNBdWRpb0NhcHR1cmUoKTsgfSkKKyAgICAgICAgJiYgIWFueU9mKG1fZ3Jh
bnRlZFJlcXVlc3RzLCBbXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LT5yZXF1aXJl
c0F1ZGlvQ2FwdHVyZSgpOyB9KTsKK30KKworYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c2hvdWxkQ2hhbmdlUHJvbXB0VG9HcmFudEZvckNhbWVyYShjb25zdCBD
bGllbnRPcmlnaW4mIG9yaWdpbikgY29uc3QKK3sKKyAgICByZXR1cm4gc2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QoeyB9LCBvcmlnaW4uY2xpZW50T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCks
IG9yaWdpbi50b3BPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgZmFsc2UsIHRydWUpOwor
fQorCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzaG91bGRD
aGFuZ2VQcm9tcHRUb0dyYW50Rm9yTWljcm9waG9uZShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdp
bikgY29uc3QKK3sKKyAgICByZXR1cm4gc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoeyB9LCBvcmln
aW4uY2xpZW50T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIG9yaWdpbi50b3BPcmlnaW4u
c2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgdHJ1ZSwgZmFsc2UpOworfQogCiAjaWYgIVBMQVRGT1JN
KENPQ09BKQogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVx
dWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2NzRiYWI0ZGI3YzljNjRk
ZWQ4NTc4NzQxZGJkMmFiOTk2ZGM0MDY1Li5hNmM2YTdiZTgyYzAzYWQ4ZTZkNDcwMmU0ZmIyZmQ0
OGM0NDBiYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTIyLDYgKzIy
LDggQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIgogI2luY2x1
ZGUgIlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUHJvZHVjZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Blcm1pc3Npb25EZXNjcmlwdG9y
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QZXJtaXNzaW9uU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bi5oPgpAQCAtMzUsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYXB0
dXJlRGV2aWNlOworc3RydWN0IENsaWVudE9yaWdpbjsKIHN0cnVjdCBNZWRpYUNvbnN0cmFpbnRz
Owogc3RydWN0IE1lZGlhU3RyZWFtUmVxdWVzdDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwpAQCAt
MTExLDYgKzExNCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgaXNTY3JlZW5DYXB0dXJlRGVu
aWVkOwogICAgIH07CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0
ZT4gZmlsdGVyUGVybWlzc2lvblF1ZXJ5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNv
bnN0IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiwgV2ViQ29yZTo6UGVybWlzc2lvblN0
YXRlKTsKKworICAgIGJvb2wgc2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHRGb3JDYW1lcmEoY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikgY29uc3Q7CisgICAgYm9vbCBzaG91bGRDaGFuZ2VE
ZW5pZWRUb1Byb21wdEZvck1pY3JvcGhvbmUoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikg
Y29uc3Q7CisgICAgYm9vbCBzaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50Rm9yQ2FtZXJhKGNvbnN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkQ2hhbmdlUHJv
bXB0VG9HcmFudEZvck1pY3JvcGhvbmUoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikgY29u
c3Q7CisKIHByaXZhdGU6CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9n
Z2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDk0OWQ4OWE4YzQ4OGQ1NDQ5YjMxZTc0YmMxZjQxZjAyNmY3OTBiYmQu
LjA1YjhlMjdiMTRkMTAwNGIyZjE3NzUzNDUyYTU0YmQxMzRjMWM0MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODY0MCwxMCArODY0MCw0NiBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cmV2b2tlR2VvbG9jYXRpb25BdXRob3JpemF0aW9uVG9rZW4oY29uc3Qg
U3RyaW5nJiBhdXRob3JpemF0aQogICAgIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIucmV2b2tlQXV0aG9yaXphdGlvblRva2VuKGF1dGhvcml6YXRpb25Ub2tlbik7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UGVybWlzc2lvbihjb25zdCBDbGllbnRPcmlnaW4m
LCBjb25zdCBQZXJtaXNzaW9uRGVzY3JpcHRvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVy
bWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5Ojpx
dWVyeVBlcm1pc3Npb24oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIGNvbnN0IFBl
cm1pc3Npb25EZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8UGVybWlzc2lvblN0YXRlPiwgYm9vbCBzaG91bGRDYWNoZSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgLy8gRklYTUU6IFNob3cgYSBwcm9tcHQgZm9yIHVzZXIgaW5w
dXQuCi0gICAgY29tcGxldGlvbkhhbmRsZXIoUGVybWlzc2lvblN0YXRlOjpHcmFudGVkKTsKKyAg
ICBib29sIHNob3VsZENoYW5nZURlbmllZFRvUHJvbXB0ID0gdHJ1ZTsKKyAgICBib29sIHNob3Vs
ZENoYW5nZVByb21wdFRvR3JhbnQgPSBmYWxzZTsKKyAgICBTdHJpbmcgbmFtZTsKKyAgICBpZiAo
ZGVzY3JpcHRvci5uYW1lID09IFBlcm1pc3Npb25OYW1lOjpDYW1lcmEpIHsKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorICAgICAgICBuYW1lID0gImNhbWVyYSJfczsKKyAgICAgICAgc2hvdWxk
Q2hhbmdlRGVuaWVkVG9Qcm9tcHQgPSB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KS5zaG91bGRDaGFuZ2VEZW5pZWRUb1Byb21wdEZvckNhbWVyYShjbGllbnRPcmlnaW4pOworICAg
ICAgICBzaG91bGRDaGFuZ2VQcm9tcHRUb0dyYW50ID0gdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCkuc2hvdWxkQ2hhbmdlUHJvbXB0VG9HcmFudEZvckNhbWVyYShjbGllbnRPcmln
aW4pOworI2VuZGlmCisgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yLm5hbWUgPT0gUGVybWlzc2lv
bk5hbWU6Ok1pY3JvcGhvbmUpIHsKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgICAgICBu
YW1lID0gIm1pY3JvcGhvbmUiX3M7CisgICAgICAgIHNob3VsZENoYW5nZURlbmllZFRvUHJvbXB0
ID0gdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc2hvdWxkQ2hhbmdlRGVuaWVk
VG9Qcm9tcHRGb3JNaWNyb3Bob25lKGNsaWVudE9yaWdpbik7CisgICAgICAgIHNob3VsZENoYW5n
ZVByb21wdFRvR3JhbnQgPSB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zaG91
bGRDaGFuZ2VQcm9tcHRUb0dyYW50Rm9yTWljcm9waG9uZShjbGllbnRPcmlnaW4pOworI2VuZGlm
CisgICAgfSBlbHNlIGlmIChkZXNjcmlwdG9yLm5hbWUgPT0gUGVybWlzc2lvbk5hbWU6Okdlb2xv
Y2F0aW9uKSB7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgICAgICBuYW1lID0gImdlb2xv
Y2F0aW9uIl9zOworI2VuZGlmCisgICAgfQorCisgICAgaWYgKG5hbWUuaXNOdWxsKCkpIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjbGll
bnRPcmlnaW4udG9wT3JpZ2luKTsKKyAgICBtX3VpQ2xpZW50LT5xdWVyeVBlcm1pc3Npb24obmFt
ZSwgb3JpZ2luLCBbY2xpZW50T3JpZ2luLCBzaG91bGRDaGFuZ2VEZW5pZWRUb1Byb21wdCwgc2hv
dWxkQ2hhbmdlUHJvbXB0VG9HcmFudCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3Vs
dCkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBmYWxzZSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCpyZXN1bHQgPT0gUGVybWlzc2lv
blN0YXRlOjpEZW5pZWQgJiYgc2hvdWxkQ2hhbmdlRGVuaWVkVG9Qcm9tcHQpCisgICAgICAgICAg
ICByZXN1bHQgPSBQZXJtaXNzaW9uU3RhdGU6OlByb21wdDsKKyAgICAgICAgZWxzZSBpZiAoKnJl
c3VsdCA9PSBQZXJtaXNzaW9uU3RhdGU6OlByb21wdCAmJiBzaG91bGRDaGFuZ2VQcm9tcHRUb0dy
YW50KQorICAgICAgICAgICAgcmVzdWx0ID0gUGVybWlzc2lvblN0YXRlOjpHcmFudGVkOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigqcmVzdWx0LCBmYWxzZSk7CisgICAgfSk7CiB9CiAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBmYjE0MTQzMzRjZTBjZTU1MTExM2QxZWFiNGYxMmJhYmJmODFjYzFhLi43YWIzZWJl
NWY1YmYxZGMyYTA4MGFkYjkxZDk0ZGU4MDk0NjJkZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMjIwOSw3ICsyMjA5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEdlb2xvY2F0aW9uSWRlbnRp
ZmllciwgRnJhbWVJbmZvRGF0YSYmKTsKICAgICB2b2lkIHJldm9rZUdlb2xvY2F0aW9uQXV0aG9y
aXphdGlvblRva2VuKGNvbnN0IFN0cmluZyYgYXV0aG9yaXphdGlvblRva2VuKTsKLSAgICB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFdl
YkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpQZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICB2b2lkIHF1ZXJ5UGVybWlzc2lvbihjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3Jp
cHRvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJt
aXNzaW9uU3RhdGU+LCBib29sIHNob3VsZENhY2hlKT4mJik7CiAKICNpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9XZWJWaWV3KFVzZXJNZXNz
YWdlJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IGUzOTFjYWFjN2QwNTFlNzdhODI1ZDZkYzQ5Y2UyZmZkOTQ3YjdmMTIuLjNk
NjhkZjk5YzdlNGY0M2E5YmZlMWExNWRhZjBjNmZjNjI1MzVmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTYwOSw3ICs2MDks
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIE1vZGVsRWxlbWVudFNldElzTXV0
ZWQoc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBp
c011dGVkKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogI2VuZGlmCiAKLSAgICByZXF1ZXN0UGVy
bWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdlYkNv
cmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6UGVybWlzc2lvblN0YXRlIHN0YXRlKSBBc3luYworICAgIFF1ZXJ5UGVybWlzc2lvbihz
dHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlBlcm1p
c3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBl
cm1pc3Npb25TdGF0ZT4gc3RhdGUsIGJvb2wgc2hvdWxkQ2FjaGUpIEFzeW5jCiAKICNpZiBFTkFC
TEUoQVBQTEVfUEFZX0FNU19VSSkKICAgICBTdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKFVSTCBv
cmlnaW5hdGluZ1VSTCwgc3RydWN0IFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlSZXF1ZXN0IHJlcXVl
c3QpIC0+IChzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlc3VsdCkgQXN5bmMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU5NDAyM2I2ZGY2Mjcx
MTBhZGY1MTlkNDQzZjVhYjViOGFmZTY0NjQuLjk5YzRkYWRhOTY0NzcxMjllZTBmM2UyZDFlNmY2
YTFmNDQwNjQzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtODM4LDYgKzgzOCw4IEBACiAJCTQxMEYwRDRDMjcwMUVGRjkwMEY5NkRG
QyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwRjBENEIyNzAxRUZF
QTAwRjk2REZDIC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
LmggKi87IH07CiAJCTQxMUE4RERCMjBEREQxQUMwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmlj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExQThE
RDkyMEREQjYwNTAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExQjIyNjQxRTM3MUJBNjAwNEY3
MzYzIC8qIExpYldlYlJUQ05ldHdvcmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMUIyMjYyMUUzNzEyNDQwMDRGNzM2MyAvKiBMaWJXZWJSVENOZXR3
b3JrLmggKi87IH07CisJCTQxMUI4OUM5MjdCMkI3NUQwMEY5RUJEMyAvKiBXS1F1ZXJ5UGVybWlz
c2lvblJlc3VsdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTFCODlDNzI3QjJCNzVDMDBGOUVCRDMgLyogV0tRdWVyeVBlcm1pc3Npb25S
ZXN1bHRDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTQxMUI4OUNDMjdCMkI4OTgwMEY5RUJEMyAvKiBRdWVyeVBlcm1pc3Npb25SZXN1
bHRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDExQjg5Q0IyN0IyQjg5NjAwRjlFQkQzIC8qIFF1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxi
YWNrLmggKi87IH07CiAJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNr
Q29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTI4N0Q0QjIyNUMwNUM0MDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tICovOyB9Owog
CQk0MTMwNzVBQzFERTg1RjM3MDAzOUVDNjkgLyogTmV0d29ya1JUQ01vbml0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzA3NTlCMURFODRGQjAw
MDM5RUM2OSAvKiBOZXR3b3JrUlRDTW9uaXRvci5oICovOyB9OwogCQk0MTMwNzVBRDFERTg1RjU4
MDAzOUVDNjkgLyogTGliV2ViUlRDU29ja2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMwNzVBMDFERTg1RUU3MDAzOUVDNjkgLyogTGliV2ViUlRD
U29ja2V0LmggKi87IH07CkBAIC00MDY5LDYgKzQwNzEsOSBAQAogCQk0MTFBOEREOTIwRERCNjA1
MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tNb2NrTWVkaWFEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDExQThEREEyMEREQjYwNTAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTW9ja01lZGlhRGV2aWNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExQjIyNjIxRTM3MTI0NDAwNEY3MzYzIC8q
IExpYldlYlJUQ05ldHdvcmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGli
V2ViUlRDTmV0d29yay5oOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTFCODlDNzI3QjJCNzVDMDBGOUVCRDMg
LyogV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1F1ZXJ5UGVybWlzc2lvblJlc3VsdENhbGxiYWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMUI4OUM4MjdCMkI3NUQwMEY5RUJEMyAvKiBXS1F1ZXJ5
UGVybWlzc2lvblJlc3VsdENhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTFCODlDQjI3QjJCODk2MDBGOUVCRDMgLyogUXVlcnlQZXJt
aXNzaW9uUmVzdWx0Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEyODdENEIyMjVDMDVDNDAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlNvY2tldFRhc2tDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyODdENEMyMjVDMDVDNTAwOUEz
RTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTb2NrZXRUYXNrQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEyODdENEQyMjVDMTYxRjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU29ja2V0VGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTEwNTMsNiArMTEwNTgsNyBAQAogCQkJCTgzMDQ4QUU1MUFDQTQ1REMwMDgy
QzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggKi8sCiAJCQkJNDY4MzU2OUIyMUU4MUND
NzAwNkUyN0EzIC8qIFByb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCAqLywKIAkJCQk0NjgzNTY5QTIx
RTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlzaW9uYWxQYWdlUHJveHkuaCAqLywKKwkJCQk0MTFCODlD
QjI3QjJCODk2MDBGOUVCRDMgLyogUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaCAqLywK
IAkJCQkxQTBDMjI3QzI0NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29m
dExpbmsuaCAqLywKIAkJCQkxQTBDMjI3RDI0NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1
bWJuYWlsaW5nU29mdExpbmsubW0gKi8sCiAJCQkJMUFFRTU3MjMyNDA5RjE0MjAwMjAwNUQ2IC8q
IFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5oICovLApAQCAtMTE0MDksNiArMTE0MTUsOCBAQAog
CQkJCTUxMkY1OEYzMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25TcGFjZS5jcHAgKi8s
CiAJCQkJNTEyRjU4RjQxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmggKi8s
CiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMu
aCAqLywKKwkJCQk0MTFCODlDODI3QjJCNzVEMDBGOUVCRDMgLyogV0tRdWVyeVBlcm1pc3Npb25S
ZXN1bHRDYWxsYmFjay5jcHAgKi8sCisJCQkJNDExQjg5QzcyN0IyQjc1QzAwRjlFQkQzIC8qIFdL
UXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaCAqLywKIAkJCQkzMzM2NzYzODEzMEM5OURD
MDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8sCiAJCQkJMzMzNjc2Mzkx
MzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCAqLywKIAkJCQkxQURF
NDZCMDE5NTRFQzYxMDAwRjc5ODUgLyogV0tTZXNzaW9uU3RhdGVSZWYuY3BwICovLApAQCAtMTMz
NDUsNiArMTMzNTMsNyBAQAogCQkJCUVCMzZCMTY4MjdBN0I0NTAwMDUwRTAwRCAvKiBQdXNoU2Vy
dmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUJBOEQzQjUyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZFMkJB
QjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMUI4OUND
MjdCMkI4OTgwMEY5RUJEMyAvKiBRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1i
bmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQyMDAy
MDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0I2MzFGMzI3QUJBRDgwMDA0NDNBNDQgLyogUXVvdGFJbmNyZWFzZVJlcXVlc3RJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTE0MTAwLDYgKzE0MTA5LDcgQEAKIAkJCQk1MTJGNThGQzEy
QTg4QTU0MDA2Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUyNzJENEM5MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MThBQ0FFQTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3Bh
Y2VUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDExQjg5QzkyN0IyQjc1RDAwRjlFQkQzIC8q
IFdLUXVlcnlQZXJtaXNzaW9uUmVzdWx0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUY0
RDVGNTFGMjA2MDg3QTEwMDM4QkJBOCAvKiBXS1F1aWNrYm9hcmRWaWV3Q29udHJvbGxlckRlbGVn
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tR
dWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFEMDFCQ0Qx
OTA1RDU0OTAwQzlDNDVGIC8qIFdLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwCmluZGV4
IGQ2MDE4MjFmMGE4NWMwMzIxMDAzZmUwZGNlZDc5NzZkOWUyMGVlNWQuLjM3OTBjMTI4Y2U2MjEx
OWRlODIxMDg3ODc4MDRjMmZkNTMyNjc3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250
cm9sbGVyLmNwcApAQCAtNDMsMTggKzQzLDEwIEBAIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjpX
ZWJQZXJtaXNzaW9uQ29udHJvbGxlcihXZWJQYWdlJiBwYWdlKQogewogfQogCi1XZWJDb3JlOjpQ
ZXJtaXNzaW9uU3RhdGUgV2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OnF1ZXJ5KFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYmIG9yaWdpbiwgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3ImJiBkZXNj
cmlwdG9yKQordm9pZCBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6cXVlcnkoV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiYgb3JpZ2luLCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciYmIGRlc2Ny
aXB0b3IsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQZXJt
aXNzaW9uU3RhdGU+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fcGFnZSkK
LSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkOwotCi0gICAg
cmV0dXJuIHF1ZXJ5Q2FjaGUoV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKGRlc2NyaXB0b3IpKTsK
LX0KLQotdm9pZCBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6cmVxdWVzdChXZWJDb3JlOjpDbGll
bnRPcmlnaW4mJiBvcmlnaW4sIFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiYgZGVzY3Jp
cHRvciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmICghbV9wYWdlKQotICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlOjpEZW5pZWQpOworICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKIAogICAgIGF1dG8gY2FjaGVkUmVz
dWx0ID0gcXVlcnlDYWNoZShvcmlnaW4sIGRlc2NyaXB0b3IpOwogICAgIGlmIChjYWNoZWRSZXN1
bHQgIT0gV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlOjpQcm9tcHQpCkBAIC0xMTIsMTMgKzEwNCwx
NCBAQCB2b2lkIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjp0cnlQcm9jZXNzaW5nUmVxdWVzdHMo
KQogICAgICAgICB9CiAKICAgICAgICAgY3VycmVudFJlcXVlc3QuaXNXYWl0aW5nRm9yUmVwbHkg
PSB0cnVlOwotICAgICAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpyZXF1ZXN0UGVybWlzc2lvbihjdXJyZW50UmVxdWVzdC5vcmlnaW4sIGN1cnJl
bnRSZXF1ZXN0LmRlc2NyaXB0b3IpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fV0oYXV0byBzdGF0ZSkgeworICAgICAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpRdWVyeVBlcm1pc3Npb24oY3VycmVudFJlcXVlc3Qub3JpZ2lu
LCBjdXJyZW50UmVxdWVzdC5kZXNjcmlwdG9yKSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH1dKGF1dG8gc3RhdGUsIGJvb2wgc2hvdWxkQ2FjaGUpIHsKICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBhdXRv
IHRha2VuUmVxdWVzdCA9IG1fcmVxdWVzdHMudGFrZUZpcnN0KCk7CiAgICAgICAgICAgICB0YWtl
blJlcXVlc3QuY29tcGxldGlvbkhhbmRsZXIoc3RhdGUpOwotICAgICAgICAgICAgdXBkYXRlQ2Fj
aGUodGFrZW5SZXF1ZXN0Lm9yaWdpbiwgdGFrZW5SZXF1ZXN0LmRlc2NyaXB0b3IsIHN0YXRlKTsK
KyAgICAgICAgICAgIGlmIChzaG91bGRDYWNoZSAmJiBzdGF0ZSkKKyAgICAgICAgICAgICAgICB1
cGRhdGVDYWNoZSh0YWtlblJlcXVlc3Qub3JpZ2luLCB0YWtlblJlcXVlc3QuZGVzY3JpcHRvciwg
KnN0YXRlKTsKIAogICAgICAgICAgICAgdHJ5UHJvY2Vzc2luZ1JlcXVlc3RzKCk7CiAgICAgICAg
IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuaAppbmRleCBlZGE3ZTE5OTc3ZmUy
NGM1MmQwNGI5NzhhNmI3OWEyMzgwOGQxNWY5Li4zYjU1NGJjOTAxZWQ3NmMzZTA4YmVmMGE0MzZl
NzU0NjEwMDk2NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuaApAQCAtNDMs
OCArNDMsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlBlcm1pc3Npb25Db250cm9sbGVy
KFdlYlBhZ2UmKTsKIAogICAgIC8vIFdlYkNvcmU6OlBlcm1pc3Npb25Db250cm9sbGVyCi0gICAg
V2ViQ29yZTo6UGVybWlzc2lvblN0YXRlIHF1ZXJ5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBX
ZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRvciYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3Qo
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlKT4mJikgZmlu
YWw7CisgICAgdm9pZCBxdWVyeShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6UGVy
bWlzc2lvbkRlc2NyaXB0b3ImJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZT4pPiYmKSBmaW5hbDsKICAgICB2b2lkIGFkZE9ic2Vy
dmVyKFdlYkNvcmU6OlBlcm1pc3Npb25PYnNlcnZlciYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3Zl
T2JzZXJ2ZXIoV2ViQ29yZTo6UGVybWlzc2lvbk9ic2VydmVyJikgZmluYWw7CiAKQEAgLTYyLDcg
KzYxLDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgUGVybWlzc2lvblJlcXVlc3QgewogICAgICAg
ICBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luOwogICAgICAgICBXZWJDb3JlOjpQZXJtaXNz
aW9uRGVzY3JpcHRvciBkZXNjcmlwdG9yOwotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZSk+IGNvbXBsZXRpb25IYW5kbGVyOworICAgICAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGVybWlzc2lvblN0
YXRlPik+IGNvbXBsZXRpb25IYW5kbGVyOwogICAgICAgICBib29sIGlzV2FpdGluZ0ZvclJlcGx5
IHsgZmFsc2UgfTsKICAgICB9OwogICAgIERlcXVlPFBlcm1pc3Npb25SZXF1ZXN0PiBtX3JlcXVl
c3RzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGIyN2NlNTM1Yzc4Y2Y1ZmMyZWVlODZkMDA0YmE3MDAyNjA2MzNkMzMuLjZlYTA5YzcyMTYwZWQ2
YmEwM2I5NGZiNTUzYjBhNzY4ZmFlY2RiYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMi0wMi0xMCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgdG8gcXVl
cnkgY2FtZXJhIGFuZCBtaWNyb3Bob25lIHBlcm1pc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxMzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVVSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtVc2VyTWVkaWFDYXB0dXJlVUlEZWxl
Z2F0ZSBfd2ViVmlldzpxdWVyeVBlcm1pc3Npb246Zm9yT3JpZ2luOmNvbXBsZXRpb25IYW5kbGVy
Ol0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVz
ZXJNZWRpYS5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlLm1tOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpxdWVyeVBlcm1pc3Np
b24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRp
b25zKToKKwogMjAyMi0wMi0xMCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEludHJvZHVjZSBhIFJlbW90ZU1lZGlhU2FtcGxlUHJveHkgdG8gcmVwcmVz
ZW50IGNhcHR1cmVkIHZpZGVvIGZyYW1lcyB1c2VkIGluIE1lZGlhIFN0cmVhbXMgYW5kIHByZXNl
bnQgaW4gR1BVUApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YjRjM2IyODJmOTVjNDFlMzQ0
YzgwYzU0MTdiZWJiNTMyODVmOTM0Li5hNmIwYzdkNDM4NWM5MzZiOTE2YTJlZTYwZDRlZTYxYmJl
OWUyNGMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTQsNiArNTQsNyBAQAogCQkwNzQ5
OTQ0MjFFQTUwMzRCMDAwREE0NEYgLyogb25kZXZpY2VjaGFuZ2UuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEY0RDE5QUY3QkVG
MDAyRUJBQjYgLyogb25kZXZpY2VjaGFuZ2UuaHRtbCAqLzsgfTsKIAkJMDc0OTk0NDIxRUE1MDM0
QjAwMERBNDVFIC8qIGdldFVzZXJNZWRpYUF1ZGlvVmlkZW9DYXB0dXJlLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE0MTBGNEQxOUFG
N0JFRjAwMkVCQUM1IC8qIGdldFVzZXJNZWRpYUF1ZGlvVmlkZW9DYXB0dXJlLmh0bWwgKi87IH07
CiAJCTA3NDk5NDUyMUVBNTAzNEIwMDBEQTQ0RSAvKiBnZXRVc2VyTWVkaWEyLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFCQUY0RTIy
NUFDOURCODAwRDgyRjMyIC8qIGdldFVzZXJNZWRpYTIuaHRtbCAqLzsgfTsKKwkJMDc0OTk0NTIx
RUE1MDM0QjAwMERBNDZFIC8qIGdldFVzZXJNZWRpYVBlcm1pc3Npb24uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTk4NTI0RjI3QUQ3
QjcwMDA1NDc3QjcgLyogZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sICovOyB9OwogCQkwNzVB
OUNGNTI2MTc3MjE4MDA2REZBM0EgLyogTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JUZXN0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1QTlDRjQyNjE3
NzIxNzAwNkRGQTNBIC8qIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yVGVzdC5tbSAqLzsgfTsKIAkJ
MDc2RTUwN0YxRjQ1MTNENjAwNkU5RjVBIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RTUwN0UxRjQ1MDMxRTAwNkU5RjVBIC8q
IExvZ2dpbmcuY3BwICovOyB9OwogCQkwNzdBNUFGMzIzMDYzOEE2MDBBNzEwNUMgLyogQWNjZXNz
aWJpbGl0eVRlc3RQbHVnaW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzQ2NjQ1ODIyRkY2MzA1MDBFMzQ1MUEgLyogQWNjZXNzaWJpbGl0eVRlc3RQ
bHVnaW4ubW0gKi87IH07CkBAIC0xMzY3LDYgKzEzNjgsNyBAQAogCQkJCTA3NDk5NDQyMUVBNTAz
NEIwMDBEQTQ0RSAvKiBnZXRVc2VyTWVkaWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQkwNzQ5OTQ1MjFFQTUwMzRCMDAwREE0NEUgLyogZ2V0VXNlck1lZGlhMi5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTA3NDk5NDQyMUVBNTAzNEIwMDBEQTQ1RSAvKiBnZXRVc2VyTWVk
aWFBdWRpb1ZpZGVvQ2FwdHVyZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTA3NDk5
NDUyMUVBNTAzNEIwMDBEQTQ2RSAvKiBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ2QTA5NUIxRUQ4QTZFNjAwRDRBQTU1IC8qIGdpZi1hbmQt
ZmlsZS1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3MzI1NUE1MjIxMzlC
QzcwMDM5NkFFOCAvKiBoZWxsb3dvcmxkLndlYmFyY2hpdmUgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVt
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xOTcxLDYgKzE5NzMsNyBAQAogCQk0MTg4
MkYwMjIxMDEwQTcwMDAyRkYyODggLyogUHJvY2Vzc1ByZVdhcm1pbmcubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzUHJlV2FybWluZy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4RkNCRDUyNzA3MDY2MTAwRjk2RUNBIC8qIFB1c2hB
UEkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQdXNoQVBJLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTk3M0I1QzFBRjIyODc1MDA2QzdCMzYg
LyogU2hhcmVkQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNoYXJlZEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOTg1MjRG
MjdBRDdCNzAwMDU0NzdCNyAvKiBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uLmh0bWw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQkFGNEUyMjVBQzlEQjgwMEQ4MkYzMiAvKiBnZXRVc2Vy
TWVkaWEyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBnZXRVc2VyTWVkaWEyLmh0
bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTY3QTg0MjVEMTZFODMwMDdCMEE0
QyAvKiBTVFVOTWVzc2FnZVBhcnNpbmdUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNUVU5NZXNzYWdlUGFyc2luZ1Rlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NDA3N0JCMDIzMTQ0OUQyMDAxNzlFMkQgLyogRGF0YURldGVjdG9yc1Rl
c3RJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhRGV0
ZWN0b3JzVGVzdElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3MDIsNiAr
NDcwNSw3IEBACiAJCQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5o
dG1sICovLAogCQkJCTQxQkFGNEUyMjVBQzlEQjgwMEQ4MkYzMiAvKiBnZXRVc2VyTWVkaWEyLmh0
bWwgKi8sCiAJCQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUM1IC8qIGdldFVzZXJNZWRpYUF1ZGlv
VmlkZW9DYXB0dXJlLmh0bWwgKi8sCisJCQkJNDE5ODUyNEYyN0FEN0I3MDAwNTQ3N0I3IC8qIGdl
dFVzZXJNZWRpYVBlcm1pc3Npb24uaHRtbCAqLywKIAkJCQlCQ0JEMzcyRTEyNUFCQkU2MDBEMkMy
OUYgLyogaWNvbi5wbmcgKi8sCiAJCQkJMUNDODBDRTkyNDc0RjFGNzAwNERDNDg5IC8qIGlkZW1w
b3RlbnQtbW9kZS1hdXRvc2l6aW5nLW9ubHktaG9ub3JzLXBlcmNlbnRhZ2VzLmh0bWwgKi8sCiAJ
CQkJQ0UzNTI0RjUxQjE0MkJCQjAwMjhBN0M1IC8qIGlucHV0LWZvY3VzLWJsdXIuaHRtbCAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQpp
bmRleCA2NWJmYmRlZjA4MjI0NjA4MjNjZmQ2MWFhMzcyODc0OTViMmIxZGE0Li40M2Y2ZDZkYjU3
NDk5NjNlY2MxMDEzNzhmMjYyNGRmOTc3YjNhMTNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCkBAIC05NzIsNiArOTcyLDkxIEBAIFRF
U1QoV2ViS2l0LCBJbnZhbGlkRGV2aWNlSWRIYXNoU2FsdHMpCiAgICAgW2RlbGVnYXRlIHdhaXRV
bnRpbFByb21wdGVkXTsKIH0KIAorCitzdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqcGVy
bWlzc2lvbnNBUElFbmFibGVkRXhwZXJpbWVudGFsRmVhdHVyZSgpCit7CisgICAgc3RhdGljIFJl
dGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJlPiB0aGVGZWF0dXJlOworICAgIGlmICh0aGVG
ZWF0dXJlKQorICAgICAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKKworICAgIE5TQXJyYXkg
KmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXTsKKyAgICBm
b3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gZmVhdHVyZXMpIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAiUGVybWlzc2lvbnNBUElFbmFibGVkIl0pIHsK
KyAgICAgICAgICAgIHRoZUZlYXR1cmUgPSBmZWF0dXJlOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7Cit9CisKK1RFU1Qo
V2ViS2l0MiwgQ2FwdHVyZVBlcm1pc3Npb24pCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IHByb2Nlc3NQb29sQ29uZmlnID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIGluaXRpYWxpemVNZWRpYUNhcHR1cmVDb25maWd1cmF0aW9u
KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6cGVybWlzc2lvbnNBUElFbmFi
bGVkRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBh
ZG9wdE5TKFtbR1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3Vy
YXRpb24uZ2V0KCkgdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxl
cjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ3VtIl07CisKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlnLmdldCgpXSk7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAg
ZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1l
ZGlhUGVybWlzc2lvbiJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgZG9uZSA9IGZhbHNlOworCisgICAgW2RlbGVnYXRlIHNldEF1ZGlvRGVjaXNpb246V0tQZXJt
aXNzaW9uRGVjaXNpb25Qcm9tcHRdOworICAgIFtkZWxlZ2F0ZSBzZXRWaWRlb0RlY2lzaW9uOldL
UGVybWlzc2lvbkRlY2lzaW9uUHJvbXB0XTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiY2hlY2tQZXJtaXNzaW9uKCdtaWNyb3Bob25lJywgJ3Byb21wdCcpIl07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7
CisKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2hlY2tQZXJt
aXNzaW9uKCdjYW1lcmEnLCAncHJvbXB0JykiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFtkZWxlZ2F0ZSBzZXRBdWRpb0Rl
Y2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3JhbnRdOworICAgIFtkZWxlZ2F0ZSBzZXRWaWRl
b0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uR3JhbnRdOworICAgIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Npb24oJ21pY3JvcGhvbmUnLCAn
Z3JhbnRlZCcpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImNoZWNrUGVybWlzc2lvbignY2FtZXJhJywgJ2dyYW50ZWQnKSJdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgLy8gQWx0aG91
Z2ggRGVueSwgd2UgZXhwZWN0IHByb21wdCBpcyBleHBvc2VkIHNpbmNlIHdlIGRvIG5vdCB0cnVz
dCB0aGUgcGFnZSB0byBjYWxsIGdldFVzZXJNZWRpYS4KKyAgICBbZGVsZWdhdGUgc2V0QXVkaW9E
ZWNpc2lvbjpXS1Blcm1pc3Npb25EZWNpc2lvbkRlbnldOworICAgIFtkZWxlZ2F0ZSBzZXRWaWRl
b0RlY2lzaW9uOldLUGVybWlzc2lvbkRlY2lzaW9uRGVueV07CisgICAgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNoZWNrUGVybWlzc2lvbignbWljcm9waG9uZScsICdw
cm9tcHQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9u
ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJj
aGVja1Blcm1pc3Npb24oJ2NhbWVyYScsICdwcm9tcHQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgLy8gTm93IHRoYXQg
d2UgZ2V0VXNlck1lZGlhIGhhcyBiZWVuIGNhbGxlZCwgd2UgY2FuIGdvIHdpdGggZGVueS4KKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZVZpZGVvKCki
XTsKKyAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0ZWRdOworICAgIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Npb24oJ21pY3JvcGhvbmUnLCAn
cHJvbXB0JykiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
Y2hlY2tQZXJtaXNzaW9uKCdjYW1lcmEnLCAnZGVuaWVkJykiXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjYXB0dXJlQXVkaW8oKSJdOworICAgIFtkZWxl
Z2F0ZSB3YWl0VW50aWxQcm9tcHRlZF07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAImNoZWNrUGVybWlzc2lvbignbWljcm9waG9uZScsICdkZW5pZWQnKSJdOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1Blcm1pc3Np
b24oJ2NhbWVyYScsICdkZW5pZWQnKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1lZGlhUGVybWlzc2lvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU5NTg2Y2MzNWU5YjE1Zjg5Mzc4NjM5MmUwODdjMmFkOTQwZGYzOWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRV
c2VyTWVkaWFQZXJtaXNzaW9uLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGxldCBz
dHJlYW0gPSBudWxsOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdG9wKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB7
IHRyYWNrLnN0b3AoKSB9KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
Y2FwdHVyZUF1ZGlvKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KS50aGVuKHMgPT4gc3RyZWFt
ID0gcyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhcHR1cmVWaWRl
bygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkudGhlbihzID0+IHN0cmVhbSA9IHMpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja1Blcm1pc3Npb24obmFtZSwg
ZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnko
eyBuYW1lIH0pLnRoZW4oKHN0YXR1cykgPT4geworICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoZXhwZWN0ZWQgPT0gc3RhdHVz
LnN0YXRlICA/ICJQQVNTIiA6ICgiRkFJTEVELCBleHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1
dCBnb3QgIiArIHN0YXR1cy5zdGF0ZSkpOworICAgICAgICAgICAgICAgIH0sIGVycm9yID0+IHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUGVybWlzc2lvbiBx
dWVyeSBmYWlsZWQgd2l0aCAiICsgZXJyb3IpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICA8
L3NjcmlwdD4KKyAgICA8aGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0id2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCdQQVNTJykiPgorICAgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZVVJRGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZVVJRGVsZWdhdGUuaAppbmRleCBjZWU1MTVhN2Q2OGYwNjE3ZDRkMjRmODNjNjVkYzc0YTQx
NzRlNjgwLi5iNjQzMzFjYWI4OTk4NGVmM2QzZDI4MTBmOWM4NjA0OGFhMTc3NDk2IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRl
LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlVUlEZWxl
Z2F0ZS5oCkBAIC01MCw2ICs1MCw3IEBACiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZVBlcm1pc3Npb25Gb3JPcmlnaW46KFdLU2VjdXJpdHlP
cmlnaW4gKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSB0eXBl
OihXS01lZGlhQ2FwdHVyZVR5cGUpdHlwZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVy
bWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDoo
TlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOwogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0RGlzcGxheUNhcHR1cmVQ
ZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGluaXRpYXRlZEJ5
RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgd2l0aFN5c3RlbUF1ZGlvOihCT09MKXdpdGhTeXN0
ZW1BdWRpbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLRGlzcGxheUNhcHR1cmVQZXJtaXNz
aW9uRGVjaXNpb24gZGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlcjsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcXVlcnlQZXJtaXNzaW9uOihOU1N0cmluZyopIG5hbWUgZm9y
T3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShXS1Blcm1pc3Npb25EZWNpc2lvbiBzdGF0ZSkpY29tcGxldGlvbkhhbmRsZXI7CiAKIEBl
bmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZVVJRGVsZWdhdGUubW0KaW5kZXggMTc0ZjM2OTkzYTE5ODRjOTUyNmU5OWYxM2VlNjE5YjIz
YzIzMDA0MC4uYjBkNjU5ZjljNWJmY2FjYThhYzk5NDMzZWY5ODNlZjE1YzNkMThlZCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0
ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVVSURl
bGVnYXRlLm1tCkBAIC03Miw2ICs3MiwxOSBAQAogICAgIF9nZXREaXNwbGF5TWVkaWFEZWNpc2lv
biA9IGRlY2lzaW9uOwogfQogCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHF1ZXJ5UGVybWlzc2lvbjooTlNTdHJpbmcqKSBuYW1lIGZvck9yaWdpbjooV0tTZWN1cml0eU9y
aWdpbiAqKW9yaWdpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tQZXJtaXNzaW9uRGVj
aXNpb24gc3RhdGUpKWNvbXBsZXRpb25IYW5kbGVyIHsKKyAgICBpZiAoW25hbWUgaXNFcXVhbFRv
U3RyaW5nOkAiY2FtZXJhIl0pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoX3ZpZGVvRGVj
aXNpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChbbmFtZSBpc0VxdWFsVG9T
dHJpbmc6QCJtaWNyb3Bob25lIl0pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoX2F1ZGlv
RGVjaXNpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLUGVybWlzc2lvbkRlY2lzaW9uRGVueSk7Cit9
CisKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0
dXJlUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBpbml0aWF0
ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIHR5cGU6KFdLTWVkaWFDYXB0dXJlVHlwZSl0
eXBlIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNp
b24pKWRlY2lzaW9uSGFuZGxlciB7CiAgICAgKytfbnVtYmVyT2ZQcm9tcHRzOwogICAgIF93YXNQ
cm9tcHRlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDI3MDUwOWNlOTRjOTVhMGMyYzI1N2M1NDM3YTFmYjRhOWMyNjY5MmYuLjRkNmU5MDlh
YmQyYTY5MmI0MzdmYmE3MTk5ZDM1NzNkOWM5NDZhYzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Myw2ICs2Myw3IEBACiAjaW5jbHVkZSA8V2ViS2l0
L1dLUGx1Z2luSW5mb3JtYXRpb24uaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQcmVmZXJlbmNlc1Jl
ZlByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQcm90ZWN0aW9uU3BhY2UuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tRdWVyeVBlcm1pc3Npb25SZXN1bHRDYWxsYmFjay5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2lu
UmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2suaD4KQEAgLTM1OSw2ICszNjAsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKICAgICBtX2lzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCA9IGdyYW50ZWQ7CiB9CiAKK3N0YXRpYyB2b2lk
IHF1ZXJ5UGVybWlzc2lvbihXS1N0cmluZ1JlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tRdWVy
eVBlcm1pc3Npb25SZXN1bHRDYWxsYmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICBXS1F1ZXJ5UGVy
bWlzc2lvblJlc3VsdENhbGxiYWNrQ29tcGxldGVXaXRoUHJvbXB0KGNhbGxiYWNrKTsKK30KKwog
dm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZ2UsIFBsYXRm
b3JtV2ViVmlldyogdmlldykKIHsKICAgICBXS1BhZ2VDbG9zZShwYWdlKTsKQEAgLTczMyw4ICs3
MzksOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxD
b29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0
b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhj
b25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFYxNiBwYWdl
VUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMTYsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBX
S1BhZ2VVSUNsaWVudFYxOCBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTgsIG1fbWFpbldl
YlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBA
IC04MDksNyArODE1LDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhP
cHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAgICBzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzLAogICAgICAgICBydW5XZWJBdXRoZW50aWNh
dGlvblBhbmVsLAogICAgICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25SZXF1ZXN0LAotICAgICAgICBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0CisgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QsCisgICAgICAgIG51bGxwdHIsIC8vIHJlcXVlc3RXZWJBdXRoZW50aWNhdGlv
bk5vR2VzdHVyZQorICAgICAgICBxdWVyeVBlcm1pc3Npb24KICAgICB9OwogICAgIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDE4MTZjZDg4Yzk3ZWNlYzc0Mjc3
ZWU1ZjAyNDRmNjU3MzdkN2JjMDguLmRmMDRiYTk2OWI0MGJmOTZlNTk1N2U1MzRkZjFmODBiNzQ5
M2E4M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIyLTAyLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCB0byBxdWVyeSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgcGVybWlzc2lvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEzOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9wZXJtaXNzaW9ucy9uZmMtcGVybWlzc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25zL3Rlc3QtYmFja2dyb3VuZC1mZXRjaC1w
ZXJtaXNzaW9uLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMi0xMCAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IGV4cG9zZSBpbiBXZWJJREwgdGhlIHBh
cnRzIG9mIHRoZSBwZXJtaXNzaW9uIEFQSSB0aGF0IGFyZSBub3QgeWV0IHN1cHBvcnRlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wZXJt
aXNzaW9ucy9uZmMtcGVybWlzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25zL25mYy1wZXJtaXNzaW9uLWV4cGVj
dGVkLnR4dAppbmRleCBjMmZkNjVlOGQ0MDAyYTcyMzAxODdhNjFmNTFjMjgyZWZjMWM2YmVjLi41
MGUyMDlmZWI4ZDU3MWFiNzBiZTIyNmM0YTAyZGM0MjYwMjU4NGI2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25zL25mYy1w
ZXJtaXNzaW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25zL25mYy1wZXJtaXNzaW9uLWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKIAotUEFTUyBUZXN0IFdlYiBORkMgUGVybWlzc2lvbi4KK0ZBSUwgVGVz
dCBXZWIgTkZDIFBlcm1pc3Npb24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5v
dCBzdXBwb3J0ZWQuIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Blcm1pc3Npb25zL3Rlc3QtYmFja2dyb3VuZC1mZXRjaC1wZXJtaXNz
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGVybWlzc2lvbnMvdGVzdC1iYWNrZ3JvdW5kLWZldGNoLXBlcm1pc3Npb24tZXhwZWN0
ZWQudHh0CmluZGV4IDc4NWJiNTg1ZjUxNTk1ZmRlYTA1MjM0MTY3MjM4MTNjOGRiMjMxNTkuLmJl
YTIwZjA0YTg1ZGI4MDQ1MDZmMmQ4ZDY1ZWE2ZGU2N2M0ZjA3ZGYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGVybWlzc2lvbnMvdGVzdC1i
YWNrZ3JvdW5kLWZldGNoLXBlcm1pc3Npb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGVybWlzc2lvbnMvdGVzdC1iYWNrZ3Jv
dW5kLWZldGNoLXBlcm1pc3Npb24tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1QQVNT
IFRlc3QgQmFja2dyb3VuZCBGZXRjaCBQZXJtaXNzaW9uLgorRkFJTCBUZXN0IEJhY2tncm91bmQg
RmV0Y2ggUGVybWlzc2lvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4iCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>