<?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>218419</bug_id>
          
          <creation_ts>2020-10-31 16:47:29 -0700</creation_ts>
          <short_desc>PiP return to element full screen is not smooth on some websites</short_desc>
          <delta_ts>2020-11-09 13:34:19 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218722</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>215305</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1703373</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-31 16:47:29 -0700</bug_when>
    <thetext>PiP return to element full screen is not smooth on some websites</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703374</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-31 16:48:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/70741846&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703375</commentid>
    <comment_count>2</comment_count>
      <attachid>412858</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-31 16:51:26 -0700</bug_when>
    <thetext>Created attachment 412858
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705057</commentid>
    <comment_count>3</comment_count>
      <attachid>413369</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-05 16:36:17 -0800</bug_when>
    <thetext>Created attachment 413369
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705097</commentid>
    <comment_count>4</comment_count>
      <attachid>413383</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-05 18:33:20 -0800</bug_when>
    <thetext>Created attachment 413383
Rebased WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705110</commentid>
    <comment_count>5</comment_count>
      <attachid>413389</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-05 20:15:44 -0800</bug_when>
    <thetext>Created attachment 413389
Fix build failures on mac and windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705121</commentid>
    <comment_count>6</comment_count>
      <attachid>413394</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-05 20:43:49 -0800</bug_when>
    <thetext>Created attachment 413394
Fix a picture-in-picture issue on mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705409</commentid>
    <comment_count>7</comment_count>
      <attachid>413477</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-06 14:03:10 -0800</bug_when>
    <thetext>Created attachment 413477
Update change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705512</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-06 21:23:39 -0800</bug_when>
    <thetext>Committed r269557: &lt;https://trac.webkit.org/changeset/269557&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413477.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412858</attachid>
            <date>2020-10-31 16:51:26 -0700</date>
            <delta_ts>2020-11-05 16:36:15 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-218419-20201031165125.patch</filename>
            <type>text/plain</type>
            <size>28771</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1N2IzZTZlMDJmMDcy
MzEwMDQzNTdmMjg2ZGVkNGI0YjgyNmQ4Zi4uNjIzY2Q0NzRjNzU3YThiYjNhNTUyYjQzMGZlYjI1
OTM0OWUwZWU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTEwLTMxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVt
ZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbENsaWVudDo6ZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnByZXBhcmVUb0V4aXRQaWN0dXJl
SW5QaWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQpOgorICAgICAgICAoVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCk6Cisg
ICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3RhcnRQaWN0dXJlSW5Q
aWN0dXJlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdG9w
UGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRIYXNWaWRlb0NvbnRl
bnRMYXllcik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9TZXR1
cCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2Ny
ZWVuSGFuZGxlcik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cmV0
dXJuVG9TdGFuZGJ5KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpz
dG9wUGljdHVyZUluUGljdHVyZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJBVktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckNvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVk
LgorCiAyMDIwLTEwLTI4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1N0cmVhbWVyXSBNdWx0aS1jaGFubmVsICg+Mikgc3VwcG9ydCBmb3IgdGhl
IEF1ZGlvRmlsZVJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5MzIzMGM4YzMzNGUyMzdhNTZlMzJmY2RmYzNl
NTViMDY5M2YzMjhmLi40Yzk0YTg3MGZmMjlkY2RlNWZjNGI5ZTVmNDdkMjQzMjM2YzkyZTI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTEwLTMxICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVtZW50IGZ1bGwgc2NyZWVu
IGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldp
bGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
YmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAg
ICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEVudGVyRnVsbFNjcmVl
bl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHJlcXVlc3RFeGl0
RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9j
b21wbGV0ZWRFeGl0RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmVdKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQuCisKIDIwMjAt
MTAtMjggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLNF0gQnVpbGQgYnJva2VuIHdpdGggR1RLIDMuOTkuMwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyLmgKaW5kZXggZjQ5MTI0NjI3ZTZhYjU3MmVjNzkyZjAyN2NjM2Y5Yzg3YzZiOGE3NS4u
NjMxNzk3ODE4MWE5ODhkNzI3ZjVhNTA1ZmQ5ZGMwYzI2Y2ZjYmQyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oCkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRXhpdEZ1bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxs
c2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUo
KSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTW9kZWwuaAppbmRleCA5ZjhkZDA4ODc5M2FlZTBjODY3YjJlMTc2ZWFm
NjQ3MWIwOWNhZGRiLi4wZmVkNzk1YWNhOWQ5ODZmZDE5OGZjZWM4ZGZiNWM1MGE1YWQyZDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1vZGVsLmgKQEAgLTgxLDcgKzgxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3aWxs
RW50ZXJQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyUGlj
dHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmYWlsZWRUb0VudGVyUGljdHVy
ZUluUGljdHVyZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9FeGl0UGljdHVyZUlu
UGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRXhpdFBpY3R1cmVJblBpY3R1cmUo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgbW9kZWxEZXN0cm95ZWQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgK
aW5kZXggNTI4MDMwM2U0ODhhZTIzODBhNTU5Y2Y1YTExZWU3MWQyYTdlNTkzZS4uMDJiMTNmMzEy
OTk2ZGRmNTZmYWJjMjc5MmQ4NTQ2NTQ3ZDUwOGRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgK
QEAgLTEzNiw2ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yUGljdHVyZUlu
UGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKICAgICBi
b29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpOworICAgIGJvb2wgcmVzdG9y
aW5nRnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc3RvcmluZ0Z1bGxzY3Jl
ZW5TdGFuZGJ5OyB9OwogCiAgICAgdm9pZCB3aWxsU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCk7CiAg
ICAgdm9pZCBkaWRTdGFydFBpY3R1cmVJblBpY3R1cmUoKTsKQEAgLTE0Niw3ICsxNDcsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vy
cm9yICopOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5T
RXJyb3IgKik7CiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkg
Y29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBp
Y3R1cmUoQk9PTCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIGNsZWFyTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwpAQCAtMTg0LDcgKzE4
NCw2IEBAIHByb3RlY3RlZDoKICAgICBSZXRhaW5QdHI8V2ViQVZQbGF5ZXJMYXllclZpZXc+IG1f
cGxheWVyTGF5ZXJWaWV3OwogICAgIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4gbV9wcmVwYXJl
VG9JbmxpbmVDYWxsYmFjazsKICAgICBSdW5Mb29wOjpUaW1lcjxWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdD4gbV93YXRjaGRvZ1RpbWVyOwotICAgIFJ1bkxvb3A6OlRpbWVyPFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0PiBtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXI7CiAgICAg
RmxvYXRSZWN0IG1faW5saW5lUmVjdDsKICAgICBSb3V0ZVNoYXJpbmdQb2xpY3kgbV9yb3V0ZVNo
YXJpbmdQb2xpY3kgeyBSb3V0ZVNoYXJpbmdQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBTdHJpbmcg
bV9yb3V0aW5nQ29udGV4dFVJRDsKQEAgLTE5Miw2ICsxOTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBtX3dpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wg
bV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3AgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSB7IGZhbHNlIH07CiAK
ICAgICBib29sIG1fc2V0dXBOZWVkc0lubGluZVJlY3QgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9l
eGl0RnVsbHNjcmVlbk5lZWRJbmxpbmVSZWN0IHsgZmFsc2UgfTsKQEAgLTIyNCw3ICsyMjQsNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3Nob3VsZElnbm9yZUFWS2l0Q2FsbGJhY2tBYm91dEV4
aXRGdWxsc2NyZWVuUmVhc29uIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW50ZXJpbmdQaWN0dXJl
SW5QaWN0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUg
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUgeyB0cnVl
IH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZWFmNjc0NTdlZDlhNjk3
Yzk5Y2E1YmZhMTcwZDNjMDc5N2U4OWUzNS4uYTRjMTU2MTk5ODcwNjJhNTAyYjNmZTYwN2NjOWQ1
NTIzNGY3MjBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtODUsNyArODUsNiBAQCBz
dGF0aWMgY29uc3QgY2hhciogYm9vbFN0cmluZyhib29sIHZhbCkKICNlbmRpZgogCiBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBkZWZhdWx0V2F0Y2hkb2dUaW1lckludGVydmFsIHsgMV9zIH07Ci1zdGF0
aWMgY29uc3QgU2Vjb25kcyBzdG9wUGljdHVyZUluUGljdHVyZVRpbWVySW50ZXJ2YWwgeyAxX3Mg
fTsKIHN0YXRpYyBib29sIGlnbm9yZVdhdGNoZG9nRm9yRGVidWdnaW5nID0gZmFsc2U7CiAKIEBp
bnRlcmZhY2UgQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAoRGV0YWlscykKQEAgLTgyMyw3ICs4MjIs
NiBAQCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6VmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQoUGxheWJhY2tTZXNzaW9uSW50ZQogICAgIDogbV9wbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2UocGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQogICAgICwgbV9wbGF5ZXJWaWV3Q29udHJv
bGxlckRlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVlBsYXllclZpZXdDb250cm9sbGVyRGVsZWdhdGUg
YWxsb2NdIGluaXRdKSkKICAgICAsIG1fd2F0Y2hkb2dUaW1lcihSdW5Mb29wOjptYWluKCksIHRo
aXMsICZWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2F0Y2hkb2dUaW1lckZpcmVkKQot
ICAgICwgbV9zdG9wUGljdHVyZUluUGljdHVyZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywg
JlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzdG9wUGljdHVyZUluUGljdHVyZVRpbWVy
RmlyZWQpCiB7CiB9CiAKQEAgLTEwOTQsMTEgKzEwOTIsNyBAQCBib29sIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVy
ZSgpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVy
ZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQogewog
ICAgIG1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAgICBp
ZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKLSAgICAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXItPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotICAgICAgICBpZiAo
bV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgICAgICBtX2Z1bGxzY3JlZW5D
aGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSgpOwotICAgIH0KKyAg
ICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KCk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdGFydFBp
Y3R1cmVJblBpY3R1cmUoKQpAQCAtMTEzMSw2ICsxMTI1LDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgICAg
IGV4aXRGdWxsc2NyZWVuSGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgIH1dOwogICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChtX3N0YW5kYnkpCisgICAgICAgICAgICBtX3Nob3VsZFJl
dHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpUCA9IFlFUzsKKwogICAgICAgICBbbV93aW5k
b3cgc2V0SGlkZGVuOllFU107CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3
XSBzZXRIaWRkZW46WUVTXTsKICAgICB9CkBAIC0xMTgwLDYgKzExNzcsMTQgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogICAg
IG1fdGFyZ2V0TW9kZS5zZXRQaWN0dXJlSW5QaWN0dXJlKGZhbHNlKTsKICAgICBbbV92aWV3Q29u
dHJvbGxlciBfc2V0SWdub3JlQXBwU3VwcG9ydGVkT3JpZW50YXRpb25zOllFU107CiAKKyAgICBp
ZiAobV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSkgeworICAgICAgICBtX2V4aXRpbmdQaWN0
dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
KQorICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBp
Y3R1cmUoKTsKKworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKG1fY3VycmVudE1v
ZGUuaGFzRnVsbHNjcmVlbigpIHx8IG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBp
Y3R1cmVTdG9wKSB7CiAgICAgICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKICAgICAgICAgW21fd2luZG93IG1h
a2VLZXlXaW5kb3ddOwpAQCAtMTE5OCwxMSArMTIwMyw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmICghbV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUpIHsKLSAg
ICAgICAgaWYgKCFtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuaXNBY3RpdmUoKSkKLSAgICAg
ICAgICAgIG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lci5zdGFydE9uZVNob3Qoc3RvcFBpY3R1
cmVJblBpY3R1cmVUaW1lckludGVydmFsKTsKLSAgICB9IGVsc2UKLSAgICAgICAgY2xlYXJNb2Rl
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1
cmUpOworICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKIAogICAgIFttX3BsYXllckxheWVyVmlldyBzZXRCYWNr
Z3JvdW5kQ29sb3I6Y2xlYXJVSUNvbG9yKCldOwogICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6Y2xlYXJVSUNvbG9yKCldOwpAQCAtMTIzNiw2ICsx
MjM3LDEwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQ
aWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uCiAgICAgICAgICAgICBlbnRlckZ1bGxz
Y3JlZW5IYW5kbGVyKHN1Y2Nlc3MsIGVycm9yKTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHN1Y2Nlc3MpOwogICAgICAgICB9XTsKKworICAgICAgICBpZiAobV9zdGFuZGJ5KQorICAg
ICAgICAgICAgbV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSA9IHRydWU7CisKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTI4OSw3ICsxMjk0LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoYm9vbCB2YWx1ZSkKICAg
ICAgICAgZmluYWxpemVTZXR1cCgpOwogICAgIGlmICghbV9oYXNWaWRlb0NvbnRlbnRMYXllciAm
JiBtX2NsZWFudXBOZWVkc1JldHVyblZpZGVvQ29udGVudExheWVyKQogICAgICAgICBjbGVhbnVw
RnVsbHNjcmVlbigpOwotICAgIGlmICghbV9oYXNWaWRlb0NvbnRlbnRMYXllciAmJiBtX3JldHVy
blRvU3RhbmRieU5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIpCisgICAgaWYgKCFtX2hhc1Zp
ZGVvQ29udGVudExheWVyICYmIG1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkpCiAgICAgICAg
IHJldHVyblRvU3RhbmRieSgpOwogICAgIGlmICghbV9oYXNWaWRlb0NvbnRlbnRMYXllciAmJiBt
X2ZpbmFsaXplU2V0dXBOZWVkc1JldHVyblZpZGVvQ29udGVudExheWVyKQogICAgICAgICBmaW5h
bGl6ZVNldHVwKCk7CkBAIC0xMzE5LDkgKzEzMjQsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpzZXRJbmxpbmVSZWN0KGNvbnN0IEludFJlY3QmIGlubGluZVJlY3QsIGJv
bwogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb1NldHVwKCkKIHsKLSAg
ICBNb2RlIGNoYW5nZXMgeyBtX2N1cnJlbnRNb2RlLm1vZGUoKSBeIG1fdGFyZ2V0TW9kZS5tb2Rl
KCkgfTsKLQotICAgIGlmIChtX2N1cnJlbnRNb2RlLmhhc1ZpZGVvKCkgJiYgbV90YXJnZXRNb2Rl
Lmhhc1ZpZGVvKCkpIHsKKyAgICBpZiAoKG1fY3VycmVudE1vZGUuaGFzVmlkZW8oKSAmJiBtX3Rh
cmdldE1vZGUuaGFzVmlkZW8oKSkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSkgewog
ICAgICAgICBtX3N0YW5kYnkgPSBtX3RhcmdldFN0YW5kYnk7CiAgICAgICAgIGZpbmFsaXplU2V0
dXAoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTU2NCw4ICsxNTY3LDExIEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNj
ZXNzLCBOU0Vycm9yCiAgICAgICAgIFdURkxvZ0Fsd2F5cygiLVtBVlBsYXllclZpZXdDb250cm9s
bGVyIGVudGVyRnVsbFNjcmVlbkFuaW1hdGVkOmNvbXBsZXRpb25IYW5kbGVyOl0gZmFpbGVkIHdp
dGggZXJyb3IgJXMiLCBbW2Vycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSBVVEY4U3RyaW5nXSk7
CiAKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpl
bnRlckZ1bGxzY3JlZW5TdGFuZGFyZCAtIGxhbWJkYSglcCkiLCB0aGlzKTsKLSAgICBzZXRNb2Rl
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKTsKLSAg
ICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsK
KyAgICBpZiAoIW1fc3RhbmRieSkgeworICAgICAgICBzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKTsKKyAgICAgICAgW21fcGxheWVyVmll
d0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107CisgICAgfSBlbHNlCisg
ICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpO
T107CiAKICAgICBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCA9
IGZhbHNlOwogCkBAIC0xNTc1LDE2ICsxNTgxLDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9y
CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRvU3RhbmRieSgp
CiB7Ci0gICAgaWYgKG1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIpIHsKLSAgICAgICAgbV9yZXR1cm5Ub1N0YW5kYnlOZWVkc1JldHVyblZpZGVvQ29u
dGVudExheWVyID0gdHJ1ZTsKLSAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPnJl
dHVyblZpZGVvQ29udGVudExheWVyKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBt
X3JldHVyblRvU3RhbmRieU5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIgPSBmYWxzZTsKLQor
ICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkgPSBmYWxzZTsKICAgICBbbV93aW5kb3cg
c2V0SGlkZGVuOllFU107CiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEhp
ZGRlbjpZRVNdOworCisgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAg
ICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKIH0KIAog
Tk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6d2F0Y2hkb2dUaW1lckZpcmVkKCkKQEAgLTE1OTUsMTMgKzE1OTcsNiBAQCBOT19SRVRVUk5f
RFVFX1RPX0FTU0VSVCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3YXRjaGRv
Z1RpbWVyRmlyZWQoKQogICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRIaWRk
ZW46WUVTXTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c3RvcFBp
Y3R1cmVJblBpY3R1cmVUaW1lckZpcmVkKCkKLXsKLSAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzdG9wUGljdHVyZUluUGljdHVyZVRpbWVyRmlyZWQo
JXApIC0gbm90IHJlYWR5IHRvIHN0b3AgcGljdHVyZS1pbi1waWN0dXJlIGluICVnczsgZm9yY2lu
ZyBzdG9wIHBpY3R1cmUtaW4tcGljdHVyZS4iLCB0aGlzLCBzdG9wUGljdHVyZUluUGljdHVyZVRp
bWVySW50ZXJ2YWwudmFsdWUoKSk7Ci0gICAgbV9zdG9wUGljdHVyZUluUGljdHVyZVRpbWVyLnN0
b3AoKTsKLSAgICBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlUGljdHVyZUluUGljdHVyZSk7Ci19Ci0KIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1vZGUpCiB7CiAgICAgaWYgKChtX2N1cnJlbnRNb2RlLm1vZGUoKSAmIG1vZGUpID09IG1v
ZGUpCkBAIC0xNjI5LDIzICsxNjI0LDYgQEAgYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6aXNQbGF5aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiAgICAgcmV0
dXJuIGhhc01vZGUoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlUGljdHVyZUluUGljdHVyZSkgJiYgW3BsYXllckNvbnRyb2xsZXIoKSBpc1BsYXlpbmdd
OwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRSZWFkeVRvU3Rv
cFBpY3R1cmVJblBpY3R1cmUoQk9PTCByZWFkeSkKLXsKLSAgICBpZiAobV9yZWFkeVRvU3RvcFBp
Y3R1cmVJblBpY3R1cmUgPT0gcmVhZHkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcmVhZHlU
b1N0b3BQaWN0dXJlSW5QaWN0dXJlID0gcmVhZHk7Ci0gICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0
dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmIChtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIu
aXNBY3RpdmUoKSkgewotICAgICAgICAgICAgbV9zdG9wUGljdHVyZUluUGljdHVyZVRpbWVyLnN0
b3AoKTsKLSAgICAgICAgICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKLSAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCk7Ci0gICAgfQotfQot
CiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaXNQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydGVkOwogCiB2
b2lkIFdlYkNvcmU6OnNldFN1cHBvcnRzUGljdHVyZUluUGljdHVyZShib29sIGlzU3VwcG9ydGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggODIzNzM4Nzg5YzFmODA2MWFk
YjRiYzc3ZmFhNDcxNjk3YzkyMDUwMy4uYzhjMDQ3ZjBjYjFmMWRiN2JkYjU2YzU5N2ZmM2E0NDdk
ZDYyODIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMjgsOCArMTI4
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAg
IHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENsZWFudXBGdWxs
c2NyZWVuKCkgZmluYWw7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBm
aW5hbCB7IH0KLSAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsK
KyAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8g
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29s
KSBvdmVycmlkZTsKQEAgLTM2MCw3ICszNTksNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJDb250ZXh0OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgfSk7CiB9CiAKLXZvaWQg
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9J
bmxpbmUoKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCkKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICBX
ZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSAoKSBt
dXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggYjIwMjhmYzI2YmYxY2ExYzk3MmJl
NGNlODkwMTFjNjE2ZDUxZTQyMi4uMzUwOTY2YmRjNGJiZmM0NTNiZWY3YjExZWUxMDdhM2ZmM2M2
NjYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENsZWFu
dXBGdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoKSBmaW5hbDsKLSAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5h
bDsKIAogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAgIFJl
ZjxQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ+IG1fcGxheWJhY2tTZXNzaW9uTW9kZWw7CkBA
IC0xMjcsNyArMTI2LDYgQEAgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZpZGVvRnVsbHNjcmVlbk0KIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSB7IH07CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29sIHZhbHVlKSA9
IDA7CiB9OwogCkBAIC0yMDEsNyArMTk5LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFZpZGVv
TGF5ZXJHcmF2aXR5KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVD
aGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZvaWQgZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIpOwogCiAgICAgYm9vbCBtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9tb2NrUGljdHVyZUluUGlj
dHVyZVdpbmRvd1NpemUgeyBEZWZhdWx0TW9ja1BpY3R1cmVJblBpY3R1cmVXaW5kb3dXaWR0aCwg
RGVmYXVsdE1vY2tQaWN0dXJlSW5QaWN0dXJlV2luZG93SGVpZ2h0IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubW0KaW5kZXggOGNmZThjNWQ3OTczODQ4ODc5MjlhNjA3OTE4NDA0YTg2Y2NkODFhMy4u
NzQ5YjcxZjhjOGM3ZTZhMTQ3MzI4MjJlZTI4OTc0NDYwMjFmNGExNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tbQpAQCAtMjc0LDEyICsyNzQsNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1vZGVs
Q29udGV4dDo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkKICAgICAgICAgbV9tYW5hZ2Vy
LT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUobV9jb250ZXh0SWQpOwogfQogCi12b2lkIFZp
ZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSgp
Ci17Ci0gICAgaWYgKG1fbWFuYWdlcikKLSAgICAgICAgbV9tYW5hZ2VyLT5mdWxsc2NyZWVuV2ls
bFJldHVyblRvSW5saW5lKG1fY29udGV4dElkKTsKLX0KLQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
b2RlbENvbnRleHQ6OnJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChtX21hbmFnZXIpCkBAIC03MDIsNiArNjk2
LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVu
KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGkKIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV2ViQ29yZTo6SW50UmVjdCBpbmxp
bmVSZWN0KQogeworICAgIG1fcGFnZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CisK
ICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBJbnRSZWN0IGlubGluZVdpbmRvd1JlY3Q7
CiAgICAgbV9wYWdlLT5yb290Vmlld1RvV2luZG93KGlubGluZVJlY3QsIGlubGluZVdpbmRvd1Jl
Y3QpOwpAQCAtODExLDE1ICs4MDcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZAogCiB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKIHsKLSAgICBtX3Bh
Z2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotICAgIGlmIChtX2NsaWVudCkKLSAg
ICAgICAgbV9jbGllbnQtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOwotfQotCi12b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGlu
ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCi17Ci0gICAgYm9v
bCBpc1ZpZXdWaXNpYmxlID0gbV9wYWdlLT5pc1ZpZXdWaXNpYmxlKCk7Ci0gICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxsc2NyZWVuV2lsbFJldHVy
blRvSW5saW5lKGNvbnRleHRJZCwgaXNWaWV3VmlzaWJsZSkpOworICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lKGNvbnRleHRJZCwgbV9wYWdlLT5pc1ZpZXdWaXNpYmxlKCkpKTsKIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQppbmRleCA1YjRh
MjYwYzhhNjAyNTEyZWYzYTM5Y2FhNDE0Yjc2NzlhNWI0NzBmLi5iN2U3NDU0MWE4NWRiMjQ3NzRl
YmJlZjQxZWNiMmZhMDcxMjVjODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXJJT1MubW0KQEAgLTQyOSw3ICs0MjksNiBAQCBzdGF0aWMgY29uc3QgTlNUaW1l
SW50ZXJ2YWwga0FuaW1hdGlvbkR1cmF0aW9uID0gMC4yOwogCiBAaW50ZXJmYWNlIFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCkK
IC0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlOwotLSAodm9pZClwcmVwYXJlVG9FeGl0
UGljdHVyZUluUGljdHVyZTsKIC0gKHZvaWQpZGlkRXhpdFBpY3R1cmVJblBpY3R1cmU7CiBAZW5k
CiAKQEAgLTQzOSwxMSArNDM4LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFyZW50KFdLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQog
CiBwcml2YXRlOgotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmluYWwK
LSAgICB7Ci0gICAgICAgIFttX3BhcmVudCBwcmVwYXJlVG9FeGl0UGljdHVyZUluUGljdHVyZV07
Ci0gICAgfQotCiAgICAgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShi
b29sIHZhbHVlKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKHZhbHVlKQpAQCAtNDc2LDcgKzQ3
MCw2IEBAIHByaXZhdGU6CiAKICAgICBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50IF92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlD
bGllbnQ7CiAgICAgQk9PTCBfaW5QaWN0dXJlSW5QaWN0dXJlOwotICAgIEJPT0wgX2VudGVyRnVs
bHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmU7CiAgICAgQk9PTCBfcmV0dXJuVG9GdWxs
c2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmU7CiAKICAgICBDR1JlY3QgX2luaXRpYWxGcmFtZTsK
QEAgLTQ4Nyw3ICs0ODAsNiBAQCBwcml2YXRlOgogICAgIEJPT0wgX2luSW50ZXJhY3RpdmVEaXNt
aXNzOwogICAgIEJPT0wgX2V4aXRSZXF1ZXN0ZWQ7CiAgICAgQk9PTCBfZW50ZXJSZXF1ZXN0ZWQ7
Ci0gICAgQk9PTCBfZXhpdGluZ0Z1bGxTY3JlZW47CiAKICAgICBSZXRhaW5QdHI8aWQ+IF9ub3Rp
ZmljYXRpb25MaXN0ZW5lcjsKIH0KQEAgLTY5OSwxNSArNjkxLDExIEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBpZiAoYXV0byogdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IHNlbGYuX3ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQodmlkZW9GdWxsc2NyZWVu
TWFuYWdlci0+Y2xpZW50KCkgPT0gbnVsbHB0cik7CiAgICAgICAgICAgICAgICAgdmlkZW9GdWxs
c2NyZWVuTWFuYWdlci0+c2V0Q2xpZW50KCZfdmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xp
ZW50KTsKLSAgICAgICAgICAgICAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSB2
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNN
YW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOwotICAgICAgICAgICAgICAgIGlmICh2aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKF9yZXR1cm5Ub0Z1
bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKFlF
Uyk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9pblBpY3R1cmVJblBpY3R1cmUpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBtb2RlbCA9IHZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZS0+dmlkZW9GdWxsc2NyZWVuTW9kZWwoKSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlID0gWUVT
OworCisgICAgICAgICAgICAgICAgaWYgKF9pblBpY3R1cmVJblBpY3R1cmUgfHwgX3JldHVyblRv
RnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
ID8gdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBu
dWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbW9kZWwgPSB2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KQEAgLTcyNyw2ICs3MTUsMTAgQEAgcHJpdmF0ZToKICAgICBpZiAo
X2Z1bGxTY3JlZW5TdGF0ZSAhPSBXZWJLaXQ6Ok5vdEluRnVsbFNjcmVlbikKICAgICAgICAgcmV0
dXJuOwogCisgICAgLy8gU3dpdGNoIHRoZSBhY3RpdmUgdGFiIGlmIG5lZWRlZAorICAgIGlmIChh
dXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgICAgIHBhZ2UtPmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9t
YW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtNzQ0LDcgKzczNiw2IEBAIHByaXZhdGU6CiAKICAgICBpZiAoYXV0
byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXIpIHsKICAgICAgICAgbWFuYWdlci0+cmVxdWVzdEV4
aXRGdWxsU2NyZWVuKCk7Ci0gICAgICAgIF9leGl0aW5nRnVsbFNjcmVlbiA9IFlFUzsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtODU1LDcgKzg0Niw2IEBAIHByaXZhdGU6CiAgICAgICAg
IH0KIAogICAgICAgICBfZXhpdFJlcXVlc3RlZCA9IE5POwotICAgICAgICBfZXhpdGluZ0Z1bGxT
Y3JlZW4gPSBOTzsKICAgICAgICAgaWYgKF9lbnRlclJlcXVlc3RlZCkgewogICAgICAgICAgICAg
X2VudGVyUmVxdWVzdGVkID0gTk87CiAgICAgICAgICAgICBbc2VsZiByZXF1ZXN0RW50ZXJGdWxs
U2NyZWVuXTsKQEAgLTkwNiwzNCArODk2LDIwIEBAIHByaXZhdGU6CiAgICAgW3NlbGYgcmVxdWVz
dEV4aXRGdWxsU2NyZWVuXTsKIH0KIAotLSAodm9pZClwcmVwYXJlVG9FeGl0UGljdHVyZUluUGlj
dHVyZQorLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZQogewotICAgIGlmIChfZW50ZXJG
dWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgcmV0dXJuOworICAg
IF9pblBpY3R1cmVJblBpY3R1cmUgPSBOTzsKIAogICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZSA9IHNlbGYuX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyBzZWxmLl92aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7Ci0KLSAg
ICBpZiAoIXZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
dmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUo
Tk8pOwotICAgIF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSA9IFlFUzsK
LQotICAgIGlmICghX2V4aXRpbmdGdWxsU2NyZWVuKQorICAgIGlmICh2aWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UgJiYgdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5yZXN0b3JpbmdGdWxsc2NyZWVu
U3RhbmRieSgpKSB7CiAgICAgICAgIFtzZWxmIHJlcXVlc3RFbnRlckZ1bGxTY3JlZW5dOwotICAg
IGVsc2UKLSAgICAgICAgX2VudGVyUmVxdWVzdGVkID0gWUVTOwotfQorICAgICAgICBfcmV0dXJu
VG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUgPSBZRVM7CisgICAgICAgIHJldHVybjsK
KyAgICB9CiAKLS0gKHZvaWQpZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUKLXsKLSAgICBfaW5QaWN0
dXJlSW5QaWN0dXJlID0gTk87Ci0gICAgX2VudGVyRnVsbHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJ
blBpY3R1cmUgPSBOTzsKLSAgICBpZiAoIVtzZWxmIGlzRnVsbFNjcmVlbl0pIHsKLSAgICAgICAg
aWYgKGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKSB7Ci0gICAgICAgICAgICBBU1NFUlQodmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y2xp
ZW50KCkgPT0gJl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQpOwotICAgICAgICAg
ICAgdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+c2V0Q2xpZW50KG51bGxwdHIpOwotICAgICAgICB9
CisgICAgaWYgKGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBzZWxmLl92aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyKSB7CisgICAgICAgIEFTU0VSVCh2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5j
bGllbnQoKSA9PSAmX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCk7CisgICAgICAg
IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPnNldENsaWVudChudWxscHRyKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggNDRmMDc3MWU2ODkzOTNjZDFkMDJhZjUyN2U4Mjgw
MzRjMjNiOGFiMS4uNGEwNjljZThiM2I0ODljMGJjYzUwNWQ5YzUxMGZhNTAxNGJkMjNjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIubW0KQEAgLTY0LDEwICs2NCw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFBhcmVudChXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpwYXJlbnQpIHsgbV9wYXJl
bnQgPSBwYXJlbnQ7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZSgpIGZpbmFsCi0gICAgewotICAgIH0KLQogICAgIHZvaWQgaGFzVmlkZW9JblBpY3R1
cmVJblBpY3R1cmVEaWRDaGFuZ2UoYm9vbCB2YWx1ZSkgZmluYWwKICAgICB7CiAgICAgICAgIGlm
ICh2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGIxZDlkYjhhMWYzOWRkMGFkZGM5NDIwM2IyZmUz
YzcwNjdmZjk5MWIuLmUxOWRmZTQ4YjMzOTViOTJmMWJkY2NiODcxODIyNTNmZTI0ZjQwM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaApAQCAtMTU3LDcgKzE1Nyw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNl
dFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jik7CiAg
ICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0oUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIsIHVuc2lnbmVkIGdyYXZpdHkpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFu
Z2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHZvaWQgZnVsbHNjcmVlbldp
bGxSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBp
c1BhZ2VWaXNpYmxlKTsKKyAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBpc1BhZ2VWaXNpYmxlKTsKICAgICB2
b2lkIHJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVx
dWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSURBc3luY1JlcGx5JiYpOwogCiAgICAg
V2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA1
ZDc4OTg3YTJjMGJiOThhMDM0NDhkNWE2NTBiMjY4MGZhMjFlMDhkLi4xOGQ3ODkzZDRlNjYwNzNm
ZjkyZWIzMTQwZDUzYjJmMjRiZTRmMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMzQsNyArMzQsNyBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
IHsKICAgICBTZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIE1h
Y2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkKICAgICBTZXRWaWRlb0xheWVyR3Jhdml0eUVudW0o
V2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIHVuc2ln
bmVkIGdyYXZpdHkpCiAgICAgRnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFdlYktpdDo6UGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKLSAgICBG
dWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCisgICAgRnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCiAgICAgUmVxdWVzdFJvdXRlU2hhcmlu
Z1BvbGljeUFuZENvbnRleHRVSUQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9s
aWN5IHJvdXRlU2hhcmluZ1BvbGljeSwgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKSBBc3luYwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGY3ZmE3NTllOWVlYjFiNmNiZDE5MmQ2OTA2
NGY2NjdlNDhiYTVjZDAuLjU1ZWRlMmIxNThjMzkxY2I3ODYyODA3ZDgwNzAwOGM4OWVmNWJiZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC01MjYsNyArNTI2LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0oUGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW4KICAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnNldFZpZGVvTGF5ZXJHcmF2aXR5KChN
ZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkpZ3Jhdml0eSk7CiB9CiAKLXZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJsZSkKK3Zv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNp
YmxlKQogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413369</attachid>
            <date>2020-11-05 16:36:17 -0800</date>
            <delta_ts>2020-11-05 18:34:34 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-218419-20201105163616.patch</filename>
            <type>text/plain</type>
            <size>67895</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M1N2IzZTZlMDJmMDcy
MzEwMDQzNTdmMjg2ZGVkNGI0YjgyNmQ4Zi4uN2RmODI0OTBhZTM5MGYwOGJkMGZiMTc5ZDNjNTk1
ZDJhZjVjMGQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTExLTA1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVt
ZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxz
Y3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxs
c2NyZWVuU3RhbmRieSk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0aW9u
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxz
Y3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50
OjpmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6cHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmFpbGVkVG9TdGFydFBpY3R1
cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6Ondp
bGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21w
bGV0aW9uSGFuZGxlcik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmRvU2V0dXApOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVkVG9SZXN0b3JlRnVsbHNjcmVlblN0YW5kYnkpOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbkhhbmRsZXIpOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhh
bmRsZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRv
U3RhbmRieSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9k
ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYXJNb2RlKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzdG9wUGljdHVyZUluUGlj
dHVyZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRl
eHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTEwLTI4
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0
cmVhbWVyXSBNdWx0aS1jaGFubmVsICg+Mikgc3VwcG9ydCBmb3IgdGhlIEF1ZGlvRmlsZVJlYWRl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA5MzIzMGM4YzMzNGUyMzdhNTZlMzJmY2RmYzNlNTViMDY5M2YzMjhmLi42
YzE4MmI5NjI4YzFmNzdmNTVmNmIyZTE1Zjc0NjhlNzFmYzc2ZWQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ1IEBACisyMDIwLTExLTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisK
KyAgICAgICAgUGlQIHJldHVybiB0byBlbGVtZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGgg
b24gc29tZSB3ZWJzaXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbik6CisgICAgICAg
IChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbldp
bGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxs
c2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW06CisgICAgICAgICgtW1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlh
bEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgX2NvbXBsZXRlZEV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgt
W1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJ
blBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfZXhp
dEZ1bGxzY3JlZW5JbW1lZGlhdGVseV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyIHByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlXSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0Vmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0
dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTEwLTI4ICBBZHJpYW4gUGVyZXogZGUgQ2Fz
dHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEJ1aWxkIGJyb2tlbiB3
aXRoIEdUSyAzLjk5LjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5ZjZmNWMwNzVi
YTlmOTU0OTRiNDQ5MTk5Y2Y4Yzg5NmNkOGJjZmI1Li4xYzZlNzJmY2ZiM2M5ODJlNWJjZThlYWU5
NDU1OThmN2NkOTU4YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjAtMTEtMDUgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAg
ICAgICBQaVAgcmV0dXJuIHRvIGVsZW1lbnQgZnVsbCBzY3JlZW4gaXMgbm90IHNtb290aCBvbiBz
b21lIHdlYnNpdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg0MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorCiAyMDIwLTEwLTI4
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBbVGVzdGluZ10gUmVt
b3ZlIHJlcXVpcmVtZW50IG9mIGFkZGluZyBuZXcgU1BJIGZvciBlYWNoIHByZWZlcmVuY2UgdGhh
dCBuZWVkcyB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCAwMDA4OWQ0YjM3MDA3Y2RmZmJjNDI3NTIwOGUxOTZmNzIzZDZmZWZiLi4wOGVlZDQ3ZWFm
NjFjZDU5OTk5ZjNkNzM2NWYzNmU1NzM1ZGQyMGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTU5OTksNyArNTk5OSw2IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6ZXhpdEZ1bGxzY3JlZW4oKQogCiAgICAgaWYgKGRvY3VtZW50KCkuYWN0aXZlRE9NT2Jq
ZWN0c0FyZVN1c3BlbmRlZCgpIHx8IGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3Bw
ZWQoKSkgewogICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9u
ZSk7Ci0gICAgICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAg
ICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0aGlz
KSwgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKG9sZFZpZGVv
RnVsbHNjcmVlbk1vZGUpKSB7CiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkp
IHsKQEAgLTYwNTgsNyArNjA1Nyw5IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuU3RhbmRieShib29sIHZhbHVlKQogICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlblN0YW5kYnkpCiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChkb3duY2FzdDxI
VE1MVmlkZW9FbGVtZW50PigqdGhpcyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBtX3ZpZGVv
RnVsbHNjcmVlblN0YW5kYnkpOwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93
bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
ZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXShhdXRvIHN1Y2Nlc3MpIG11dGFibGUgeworICAgICAgICAgICAgbV92
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ID0gIXN1Y2Nlc3M7CisgICAgICAgIH0pOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCAwZTc4MTAwMzkxN2U2ZmQyYTIy
NjgwMzc2NTY3MTQ4Nzg5OTU3ZDg1Li40Y2E3OGM5YTc1YmNkMTBmZTk5OTJhNjUyNTk5YTMzZTYz
OWFhMzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTQ3
NSwxMiArNDc1LDEzIEBAIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZSBI
VE1MVmlkZW9FbGVtZW50Ojp0b1ByZXNlbnRhdGlvbk1vZGUoSFRNCiB2b2lkIEhUTUxWaWRlb0Vs
ZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1v
ZGUpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIiwgbW9kZSA9ICIsICBtb2RlKTsK
LSAgICBzZXRQcmVzZW50YXRpb25Nb2RlKG1vZGUpOworICAgIGlmICghaXNDaGFuZ2luZ1ZpZGVv
RnVsbHNjcmVlbk1vZGUoKSkKKyAgICAgICAgc2V0UHJlc2VudGF0aW9uTW9kZShtb2RlKTsKIH0K
IAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2Vu
dGF0aW9uTW9kZSBtb2RlKQogewotICAgIGlmIChpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9k
ZSgpIHx8IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBtb2RlKQorICAg
IGlmICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gbW9kZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgYXV0byB2aWRlb0Z1bGxzY3JlZW5Nb2RlID0gdG9GdWxsc2NyZWVu
TW9kZShtb2RlKTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNl
dFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAgaWYgKHZp
ZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpIHsKICAgICAgICAg
aWYgKGlzRnVsbHNjcmVlbigpKSB7CiAgICAgICAgICAgICBpZiAodG9QcmVzZW50YXRpb25Nb2Rl
KGZ1bGxzY3JlZW5Nb2RlKCkpID09IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGlj
dHVyZSkKLSAgICAgICAgICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVl
OworICAgICAgICAgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwogCiAg
ICAgICAgICAgICBleGl0RnVsbHNjcmVlbigpOwogICAgICAgICB9CkBAIC01MDEsOSArNTAyLDkg
QEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2Vu
dGF0aW9uTW9kZSBtb2RlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAodmlkZW9GdWxsc2Ny
ZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAg
bV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CisgICAgICAgIG1fZW50ZXJpbmdQ
aWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKICAgICBlbHNlIGlmIChmdWxsc2NyZWVuTW9kZSgpID09
IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICBtX2lzRXhpdGlu
Z1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0
dXJlID0gdHJ1ZTsKIAogICAgIGVudGVyRnVsbHNjcmVlbih2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
IH0KQEAgLTUxNSw4ICs1MTYsOCBAQCBhdXRvIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFByZXNl
bnRhdGlvbk1vZGUoKSBjb25zdCAtPiBWaWRlb1ByZXNlbnRhdGlvbk1vZGUKIAogdm9pZCBIVE1M
VmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3Qg
RmxvYXRTaXplJiBzaXplKQogewotICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJl
KSB7Ci0gICAgICAgIG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICBp
ZiAobV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1
cmVJblBpY3R1cmUgPSBmYWxzZTsKICAgICAgICAgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5N
b2RlKGZhbHNlKTsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpAQCAtNTI4
LDggKzUyOSw4IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQ
aWN0dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBpZiAobV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIG1f
aXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgIGlmIChtX2V4aXRpbmdQaWN0
dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxz
ZTsKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICAgICAgaWYgKG1fcGlj
dHVyZUluUGljdHVyZU9ic2VydmVyKQogICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CkBAIC01NDEsOCArNTQyLDggQEAgdm9p
ZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUo
Y29uc3QgRmxvYXRTaXplJiBzaXoKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVs
bHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSgpCiB7Ci0gICAgaWYgKG1faXNFeGl0aW5nUGljdHVy
ZUluUGljdHVyZSkgewotICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxz
ZTsKKyAgICBpZiAobV9leGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4aXRp
bmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAgICAgICAgIHNldENoYW5naW5nVmlkZW9GdWxs
c2NyZWVuTW9kZShmYWxzZSk7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkK
QEAgLTU2OCw3ICs1NjksNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNj
cmVlbkZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogI2lm
IEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQotICAgIGlmICghbV9pc0VudGVyaW5nUGlj
dHVyZUluUGljdHVyZSAmJiAhbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlICYmIG1fcGljdHVy
ZUluUGljdHVyZU9ic2VydmVyKQorICAgIGlmICghbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUg
JiYgIW1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgJiYgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2
ZXIpCiAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5waWN0dXJlSW5QaWN0dXJl
V2luZG93UmVzaXplZChJbnRTaXplKGZyYW1lLnNpemUoKSkpOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGE2NjM4ODFhZmQyNmJkZmUwZTBkMGQ3
ZjE5ZjBhNjdiMzVmMzhlOWYuLmE4MGQxMmVhMWIzN2RjMDlmZjJlODZkYjNlNzZmMzU3YjI3MDY4
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xNDIsOCArMTQy
LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0IHsg
MCB9OwogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIGJvb2wgbV9p
c0VudGVyaW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzRXhpdGlu
Z1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSB7
IGZhbHNlIH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMTA0MTI0MDc5ZWMxOTI3ZjAyYmI4MDVk
MmM0YzJlZDYyM2U3Yzk0Mi4uMmFmZjZiMTZjNTQxNDNlODkyYzg3YjQxMGY0ZTYwOGU3MzMzZjg4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVk
aWFTZXNzaW9uSWRlbnRpZmllcikgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBleGl0
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlk
ZW9FbGVtZW50JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyID0gW10oYm9vbCkgeyB9KSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9u
KEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1Bs
YXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmlu
ZGV4IGY0OTEyNDYyN2U2YWI1NzJlYzc5MmYwMjdjYzNmOWM4N2M2YjhhNzUuLjYzMTc5NzgxODFh
OTg4ZDcyN2Y1YTUwNWZkOWRjMGMyNmNmY2JkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIu
aApAQCAtNDIsNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxs
c2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkgPSAwOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1vZGVsLmgKaW5kZXggOWY4ZGQwODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0NzFiMDljYWRk
Yi4uMGZlZDc5NWFjYTlkOTg2ZmQxOThmY2VjOGRmYjVjNTBhNWFkMmQ2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCkBA
IC04MSw3ICs4MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVudGVyUGljdHVy
ZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1
cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUo
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIG1vZGVsRGVzdHJveWVkKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IDUyODAz
MDNlNDg4YWUyMzgwYTU1OWNmNWExMWVlNzFkMmE3ZTU5M2UuLjhiZjQyNGRmYWFjY2M4OTgwNjJl
ZjQ1YjcyZDc5MDNjZWYyMzNjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC04MSw3ICs4
MSw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0dXBGdWxsc2NyZWVu
KFVJVmlldyYgdmlkZW9WaWV3LCBjb25zdCBJbnRSZWN0JiBpbml0aWFsUmVjdCwgY29uc3QgRmxv
YXRTaXplJiB2aWRlb0RpbWVuc2lvbnMsIFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1
cmVQbGF5YmFjaywgYm9vbCBzdGFuZGJ5KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVudGVy
RnVsbHNjcmVlbigpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oY29u
c3QgSW50UmVjdCYgZmluYWxSZWN0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4aXRGdWxs
c2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0
ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVl
bigpOwpAQCAtODksNiArODksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
cmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhh
c1ZpZGVvQ29udGVudExheWVyKGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW5s
aW5lUmVjdChjb25zdCBJbnRSZWN0JiwgYm9vbCB2aXNpYmxlKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHByZXBhcmVkVG9SZXN0b3JlRnVsbHNjcmVlblN0YW5kYnkoKTsKIAogICAgIGVudW0g
Y2xhc3MgRXhpdEZ1bGxTY3JlZW5SZWFzb24gewogICAgICAgICBEb25lQnV0dG9uVGFwcGVkLApA
QCAtMTM2LDYgKzEzNyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JQaWN0dXJlSW5Q
aWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIGJv
b2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CisgICAgYm9vbCBpblBpY3R1
cmVJblBpY3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSB8
fCBtX2N1cnJlbnRNb2RlLmhhc1BpY3R1cmVJblBpY3R1cmUoKTsgfQorICAgIGJvb2wgcmVzdG9y
aW5nRnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc3RvcmluZ0Z1bGxzY3Jl
ZW5TdGFuZGJ5OyB9CiAKICAgICB2b2lkIHdpbGxTdGFydFBpY3R1cmVJblBpY3R1cmUoKTsKICAg
ICB2b2lkIGRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgpOwpAQCAtMTQ2LDEwICsxNDksOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vy
cm9yICopOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5T
RXJyb3IgKik7CiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkg
Y29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBp
Y3R1cmUoQk9PTCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2b2lkIGNsZWFyTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUsIGJvb2wgc2hvdWxkTm90aWZ5TW9kZWwpOworICAgIHZvaWQgY2xlYXJNb2RlKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzaG91bGROb3RpZnlN
b2RlbCk7CiAgICAgYm9vbCBoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRNb2RlLmhhc01vZGUobW9k
ZSk7IH0KIAogICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigp
OwpAQCAtMTY2LDcgKzE2OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJldHVyblRvU3RhbmRi
eSgpOwogICAgIHZvaWQgZG9FbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIHdhdGNoZG9nVGlt
ZXJGaXJlZCgpOwotICAgIHZvaWQgc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckZpcmVkKCk7CiAg
ICAgV2ViQVZQbGF5ZXJDb250cm9sbGVyICpwbGF5ZXJDb250cm9sbGVyKCkgY29uc3Q7CiAKICAg
ICBSZWY8UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ+IG1fcGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlOwpAQCAtMTg0LDE0ICsxODUsMTQgQEAgcHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxX
ZWJBVlBsYXllckxheWVyVmlldz4gbV9wbGF5ZXJMYXllclZpZXc7CiAgICAgV1RGOjpGdW5jdGlv
bjx2b2lkKGJvb2wpPiBtX3ByZXBhcmVUb0lubGluZUNhbGxiYWNrOwogICAgIFJ1bkxvb3A6OlRp
bWVyPFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBtX3dhdGNoZG9nVGltZXI7Ci0gICAg
UnVuTG9vcDo6VGltZXI8VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IG1fc3RvcFBpY3R1
cmVJblBpY3R1cmVUaW1lcjsKICAgICBGbG9hdFJlY3QgbV9pbmxpbmVSZWN0OwogICAgIFJvdXRl
U2hhcmluZ1BvbGljeSBtX3JvdXRlU2hhcmluZ1BvbGljeSB7IFJvdXRlU2hhcmluZ1BvbGljeTo6
RGVmYXVsdCB9OwogICAgIFN0cmluZyBtX3JvdXRpbmdDb250ZXh0VUlEOwogICAgIGJvb2wgbV9h
bGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2sgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93aXJl
bGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1fc2hvdWxkUmV0
dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hv
dWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3Rv
cCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5IHsgZmFs
c2UgfTsKIAogICAgIGJvb2wgbV9zZXR1cE5lZWRzSW5saW5lUmVjdCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2V4aXRGdWxsc2NyZWVuTmVlZElubGluZVJlY3QgeyBmYWxzZSB9OwpAQCAtMjI0LDcg
KzIyNSw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fc2hvdWxkSWdub3JlQVZLaXRDYWxsYmFj
a0Fib3V0RXhpdEZ1bGxzY3JlZW5SZWFzb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRlcmlu
Z1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUlu
UGljdHVyZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVy
ZSB7IHRydWUgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlYWY2NzQ1
N2VkOWE2OTdjOTljYTViZmExNzBkM2MwNzk3ZTg5ZTM1Li5lMTRiYWZmNTY5NjQyOGMxNDQwODA2
MTIyNDliMGRmZWJkODdiMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC04NSw3ICs4
NSw2IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBib29sU3RyaW5nKGJvb2wgdmFsKQogI2VuZGlmCiAK
IHN0YXRpYyBjb25zdCBTZWNvbmRzIGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgeyAxX3Mg
fTsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJJbnRlcnZh
bCB7IDFfcyB9Owogc3RhdGljIGJvb2wgaWdub3JlV2F0Y2hkb2dGb3JEZWJ1Z2dpbmcgPSBmYWxz
ZTsKIAogQGludGVyZmFjZSBBVlBsYXllclZpZXdDb250cm9sbGVyIChEZXRhaWxzKQpAQCAtODIz
LDcgKzgyMiw2IEBAIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdChQbGF5YmFja1Nlc3Npb25JbnRlCiAgICAgOiBtX3BsYXliYWNrU2Vz
c2lvbkludGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgLCBtX3BsYXllclZp
ZXdDb250cm9sbGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWUGxheWVyVmlld0NvbnRyb2xsZXJE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pKQogICAgICwgbV93YXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1h
aW4oKSwgdGhpcywgJlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3YXRjaGRvZ1RpbWVy
RmlyZWQpCi0gICAgLCBtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIoUnVuTG9vcDo6bWFpbigp
LCB0aGlzLCAmVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0
dXJlVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtOTU1LDE5ICs5NTMsMjIgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCkKICAgICBkb0VudGVyRnVs
bHNjcmVlbigpOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0
RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpCitib29sIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3Qp
CiB7Ci0gICAgaWYgKG1fd2F0Y2hkb2dUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3dhdGNo
ZG9nVGltZXIuc3RvcCgpOworICAgIG1fd2F0Y2hkb2dUaW1lci5zdG9wKCk7CiAKLSAgICBpZiAo
bV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyIG1heSBhc2sgYSB2aWRlbyB0byBleGl0IHN0YW5kYnkgd2hpbGUg
dGhlIHZpZGVvCisgICAgLy8gaXMgZW50ZXJpbmcgcGljdHVyZS1pbi1waWN0dXJlLiBXZSBuZWVk
IHRvIGlnbm9yZSB0aGUgcmVxdWVzdCBpbiB0aGF0IGNhc2UuCisgICAgaWYgKG1fc3RhbmRieSAm
JiBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgbV90YXJnZXRNb2RlID0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZTsKIAogICAgIHNldElubGluZVJlY3QoZmluYWxSZWN0LCB0cnVlKTsKICAgICBkb0V4
aXRGdWxsc2NyZWVuKCk7CiAgICAgbV9zaG91bGRJZ25vcmVBVktpdENhbGxiYWNrQWJvdXRFeGl0
RnVsbHNjcmVlblJlYXNvbiA9IHRydWU7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQpAQCAtOTc1
LDkgKzk3Niw2IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBG
dWxsc2NyZWVuKCkKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKICAgICBtX3Nob3VsZElnbm9y
ZUFWS2l0Q2FsbGJhY2tBYm91dEV4aXRGdWxsc2NyZWVuUmVhc29uID0gZmFsc2U7CiAKLSAgICBp
ZiAobV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1f
Y2xlYW51cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIgPSB0cnVlOwogICAgIGlmIChtX2hh
c1ZpZGVvQ29udGVudExheWVyICYmIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7CiAgICAg
ICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5yZXR1cm5WaWRlb0NvbnRlbnRMYXllcigp
OwpAQCAtMTAzNSw3ICsxMDMzLDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG51bGxwdHI7
CiAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIgPSBudWxscHRyOwotICAgIAorCisgICAg
bV93YXRjaGRvZ1RpbWVyLnN0b3AoKTsKKyAgICBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9
IGZhbHNlOwogICAgIGNsZWFudXBGdWxsc2NyZWVuKCk7CiB9CiAKQEAgLTEwOTQsMTEgKzEwOTQs
OCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5
U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGNhbGxiYWNrKQogewogICAgIG1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKTsKLSAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsK
KyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLSAgICAgICAg
aWYgKG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgbV9mdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKTsKLSAgICB9
CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdGFydFBpY3R1
cmVJblBpY3R1cmUoKQpAQCAtMTEyMCwyOCArMTExNywyNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Ojp3aWxsU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgpCiB7CiAg
ICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3Rh
cnRQaWN0dXJlSW5QaWN0dXJlKCVwKSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSk7CisgICAgc2V0
TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5Q
aWN0dXJlLCAhbV9lbnRlckZ1bGxzY3JlZW5OZWVkc0VudGVyUGljdHVyZUluUGljdHVyZSk7CiAg
ICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107
CiAgICAgW21fdmlld0NvbnRyb2xsZXIgX3NldElnbm9yZUFwcFN1cHBvcnRlZE9yaWVudGF0aW9u
czpOT107CiAKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkpIHsKLSAgICAg
ICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBZRVM7CisgICAg
ICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVy
ZSA9IHRydWU7CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJ
Zk5lZWRlZF07CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVu
QW5pbWF0ZWQ6WUVTIGNvbXBsZXRpb25IYW5kbGVyOltwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgdGhpc10gKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAg
ICAgIGV4aXRGdWxsc2NyZWVuSGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgIH1dOwog
ICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChtX3N0YW5kYnkpCisgICAgICAgICAgICBtX3Nob3Vs
ZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwor
CiAgICAgICAgIFttX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKICAgICAgICAgW1ttX3BsYXllclZp
ZXdDb250cm9sbGVyIHZpZXddIHNldEhpZGRlbjpZRVNdOwogICAgIH0KIAotICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGVsKQotICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5kaWRF
bnRlclBpY3R1cmVJblBpY3R1cmUoKTsKLQogICAgIGlmIChtX2VudGVyRnVsbHNjcmVlbk5lZWRz
RW50ZXJQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwotCi0g
ICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUoKQpA
QCAtMTE1MywxMSArMTE0OCwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpmYWlsZWRUb1N0YXJ0UGljdHVyZUluUGljdHVyZSgpCiAgICAgaWYgKG1fY3VycmVudE1vZGUu
aGFzRnVsbHNjcmVlbigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0Z1bGxz
Y3JlZW5Nb2RlbCkKKyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkgewogICAgICAgICBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5mYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgpOwot
Ci0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCiAgICAgICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSgpCkBAIC0xMTY1LDcgKzEx
NTksNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcFBpY3R1
cmVJblBpY3R1cmUoKQogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSglcCkiLCB0aGlzKTsKIAogICAgIG1f
ZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwotICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxs
c2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7CisgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxz
Y3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAKICAgICBpZiAobV9j
dXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGlj
dHVyZUluUGljdHVyZVN0b3ApCiAgICAgICAgIHJldHVybjsKQEAgLTExODAsOCArMTE3NCwxNyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUluUGlj
dHVyZSgpCiAgICAgbV90YXJnZXRNb2RlLnNldFBpY3R1cmVJblBpY3R1cmUoZmFsc2UpOwogICAg
IFttX3ZpZXdDb250cm9sbGVyIF9zZXRJZ25vcmVBcHBTdXBwb3J0ZWRPcmllbnRhdGlvbnM6WUVT
XTsKIAorICAgIGlmIChtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5KSB7CisgICAgICAgIG1f
ZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1
cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwp
CisgICAgICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5kaWRFeGl0UGljdHVyZUluUGlj
dHVyZSgpOworCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobV9jdXJyZW50TW9k
ZS5oYXNGdWxsc2NyZWVuKCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGlj
dHVyZVN0b3ApIHsKLSAgICAgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOworICAgICAgICBjbGVhck1vZGUoSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSwg
IW1fZXhpdEZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIG1fcmVzdG9yaW5n
RnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wKTsKICAgICAgICAgW21fd2luZG93IG1h
a2VLZXlXaW5kb3ddOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1Bs
YXliYWNrQ29udHJvbHM6WUVTXTsKIApAQCAtMTE5OCwxMSArMTIwMSw3IEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1
cmUpIHsKLSAgICAgICAgaWYgKCFtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuaXNBY3RpdmUo
KSkKLSAgICAgICAgICAgIG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lci5zdGFydE9uZVNob3Qo
c3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckludGVydmFsKTsKLSAgICB9IGVsc2UKLSAgICAgICAg
Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1
cmVJblBpY3R1cmUpOworICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCAhbV9leGl0RnVsbHNjcmVlbk5lZWRzRXhp
dFBpY3R1cmVJblBpY3R1cmUpOwogCiAgICAgW21fcGxheWVyTGF5ZXJWaWV3IHNldEJhY2tncm91
bmRDb2xvcjpjbGVhclVJQ29sb3IoKV07CiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZp
ZXddIHNldEJhY2tncm91bmRDb2xvcjpjbGVhclVJQ29sb3IoKV07CkBAIC0xMjEyLDIwICsxMjEx
LDE0IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0dXJl
SW5QaWN0dXJlKCkKIAogICAgIGlmIChtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUlu
UGljdHVyZSkKICAgICAgICAgZG9FeGl0RnVsbHNjcmVlbigpOwotICAgIGVsc2UgaWYgKG1fZXhp
dGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKLSAgICAgICAgbV9leGl0aW5nUGljdHVyZUluUGljdHVy
ZSA9IGZhbHNlOwotCi0gICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAgICAg
ICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsK
LSAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVG
b3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkICheY29tcGxl
dGlvbkhhbmRsZXIpKEJPT0wgcmVzdG9yZWQpKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3Rv
cFdpdGhDb21wbGV0aW9uSGFuZGxlciglcCkiLCB0aGlzKTsKIAotICAgIGlmIChtX3Nob3VsZFJl
dHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpUCkgewotICAgICAgICBtX3Nob3VsZFJldHVy
blRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpUCA9IGZhbHNlOworICAgIGlmIChtX3Nob3VsZFJl
dHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAg
bV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJlSW5QaWN0dXJlID0g
ZmFsc2U7CiAgICAgICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVT
dG9wID0gdHJ1ZTsKIAogICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKQEAgLTEyMzYs
NiArMTIyOSwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJl
Rm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbgogICAgICAgICAgICAgZW50ZXJG
dWxsc2NyZWVuSGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihzdWNjZXNzKTsKICAgICAgICAgfV07CisKKyAgICAgICAgaWYgKG1fc3RhbmRieSkg
eworICAgICAgICAgICAgbV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSA9IHRydWU7CisgICAg
ICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJl
UGxheWJhY2s6Tk9dOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MTI4OSwxMCArMTI4OCwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpz
ZXRIYXNWaWRlb0NvbnRlbnRMYXllcihib29sIHZhbHVlKQogICAgICAgICBmaW5hbGl6ZVNldHVw
KCk7CiAgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fY2xlYW51cE5lZWRzUmV0
dXJuVmlkZW9Db250ZW50TGF5ZXIpCiAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuKCk7Ci0gICAg
aWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fcmV0dXJuVG9TdGFuZGJ5TmVlZHNSZXR1
cm5WaWRlb0NvbnRlbnRMYXllcikKLSAgICAgICAgcmV0dXJuVG9TdGFuZGJ5KCk7Ci0gICAgaWYg
KCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZmluYWxpemVTZXR1cE5lZWRzUmV0dXJuVmlk
ZW9Db250ZW50TGF5ZXIpCisgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZmlu
YWxpemVTZXR1cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIgJiYgIW1fcmVzdG9yaW5nRnVs
bHNjcmVlblN0YW5kYnkpCiAgICAgICAgIGZpbmFsaXplU2V0dXAoKTsKKyAgICBpZiAoIW1faGFz
VmlkZW9Db250ZW50TGF5ZXIgJiYgbV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSkKKyAgICAg
ICAgcmV0dXJuVG9TdGFuZGJ5KCk7CiAgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYm
IG1fZXhpdEZ1bGxzY3JlZW5OZWVkc1JldHVybkNvbnRlbnRMYXllcikKICAgICAgICAgZG9FeGl0
RnVsbHNjcmVlbigpOwogfQpAQCAtMTMxOSw5ICsxMzE4LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0SW5saW5lUmVjdChjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0
LCBib28KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9TZXR1cCgpCiB7
Ci0gICAgTW9kZSBjaGFuZ2VzIHsgbV9jdXJyZW50TW9kZS5tb2RlKCkgXiBtX3RhcmdldE1vZGUu
bW9kZSgpIH07Ci0KLSAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNWaWRlbygpICYmIG1fdGFyZ2V0
TW9kZS5oYXNWaWRlbygpKSB7CisgICAgaWYgKChtX2N1cnJlbnRNb2RlLmhhc1ZpZGVvKCkgJiYg
bV90YXJnZXRNb2RlLmhhc1ZpZGVvKCkpKSB7CiAgICAgICAgIG1fc3RhbmRieSA9IG1fdGFyZ2V0
U3RhbmRieTsKICAgICAgICAgZmluYWxpemVTZXR1cCgpOwogICAgICAgICByZXR1cm47CkBAIC0x
NDA4LDYgKzE0MDUsMTQgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9T
ZXR1cCgpCiAgICAgZmluYWxpemVTZXR1cCgpOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCkKK3sKKyAg
ICBpZiAoIW1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQ
aWN0dXJlSW5QaWN0dXJlLCB0cnVlKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZmluYWxpemVTZXR1cCgpCiB7CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlz
XSB7CkBAIC0xNDg0LDcgKzE0ODksMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6ZG9FbnRlckZ1bGxzY3JlZW4oKQogICAgICAgICAgICAgc2l6ZSA9IEZsb2F0U2l6ZSh2
aWRlb0ZyYW1lLnNpemUoKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXItPmRpZEVudGVyRnVsbHNjcmVlbihzaXplKTsKKyAgICAgICAgbV9lbnRlcmluZ1Bp
Y3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKICAgICB9CisKKyAgICBpZiAobV9jdXJyZW50TW9kZS5o
YXNQaWN0dXJlSW5QaWN0dXJlKCkgJiYgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCAmJiAhbV9yZXN0
b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApCisgICAgICAgIG1fdmlkZW9G
dWxsc2NyZWVuTW9kZWwtPmRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpOwogfQogCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKCkKQEAgLTE1MDks
NyArMTUxOCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRXhpdEZ1
bGxzY3JlZW4oKQogCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzTW9kZShIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSkgewogICAgICAg
ICBtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVyZSA9IHRydWU7Ci0gICAg
ICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7Cisg
ICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGlj
dHVyZSA9IGZhbHNlOwogICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKICAgICAgICAg
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcFBpY3R1cmVJblBpY3R1cmVdOwogICAgICAgICBy
ZXR1cm47CkBAIC0xNTM4LDcgKzE1NDcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpleGl0RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yKgogCiAg
ICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkRXhp
dEZ1bGxzY3JlZW4oJXApIC0gJWQiLCB0aGlzLCBzdWNjZXNzKTsKIAotICAgIGNsZWFyTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7CisgICAg
Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5k
YXJkLCBmYWxzZSk7CiAKICAgICBpZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSkgewogICAgICAgICBbbV93aW5kb3cg
c2V0SGlkZGVuOllFU107CkBAIC0xNTY0LDggKzE1NzMsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5T
RXJyb3IKICAgICAgICAgV1RGTG9nQWx3YXlzKCItW0FWUGxheWVyVmlld0NvbnRyb2xsZXIgZW50
ZXJGdWxsU2NyZWVuQW5pbWF0ZWQ6Y29tcGxldGlvbkhhbmRsZXI6XSBmYWlsZWQgd2l0aCBlcnJv
ciAlcyIsIFtbZXJyb3IgbG9jYWxpemVkRGVzY3JpcHRpb25dIFVURjhTdHJpbmddKTsKIAogICAg
IExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVs
bHNjcmVlblN0YW5kYXJkIC0gbGFtYmRhKCVwKSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpOwotICAgIFttX3Bs
YXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOworICAgIGlm
ICghbV9zdGFuZGJ5KSB7CisgICAgICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQsICFtX2VudGVyRnVsbHNjcmVlbk5lZWRzRW50ZXJG
dWxsc2NyZWVuKTsKKyAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5
YmFja0NvbnRyb2xzOllFU107CisgICAgfSBlbHNlCisgICAgICAgIFttX3BsYXllclZpZXdDb250
cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpOT107CiAKICAgICBtX3Jlc3RvcmluZ0Z1
bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCA9IGZhbHNlOwogCkBAIC0xNTc1LDE2ICsx
NTg3LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNj
cmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnJldHVyblRvU3RhbmRieSgpCiB7Ci0gICAgaWYgKG1faGFzVmlkZW9D
b250ZW50TGF5ZXIgJiYgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKLSAgICAgICAgbV9y
ZXR1cm5Ub1N0YW5kYnlOZWVkc1JldHVyblZpZGVvQ29udGVudExheWVyID0gdHJ1ZTsKLSAgICAg
ICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPnJldHVyblZpZGVvQ29udGVudExheWVyKCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX3JldHVyblRvU3RhbmRieU5lZWRzUmV0
dXJuVmlkZW9Db250ZW50TGF5ZXIgPSBmYWxzZTsKLQorICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVl
blN0YW5kYnkgPSBmYWxzZTsKICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAgW1tt
X3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEhpZGRlbjpZRVNdOworCisgICAgaWYgKG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci0+ZGlkU2V0dXBGdWxsc2NyZWVuKCk7CiB9CiAKIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJU
IHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndhdGNoZG9nVGltZXJGaXJlZCgp
CkBAIC0xNTk1LDE0ICsxNjAzLDcgQEAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2F0Y2hkb2dUaW1lckZpcmVkKCkKICAgICBbW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gc2V0SGlkZGVuOllFU107CiB9CiAKLXZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJGaXJl
ZCgpCi17Ci0gICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckZpcmVkKCVwKSAtIG5vdCByZWFkeSB0byBzdG9w
IHBpY3R1cmUtaW4tcGljdHVyZSBpbiAlZ3M7IGZvcmNpbmcgc3RvcCBwaWN0dXJlLWluLXBpY3R1
cmUuIiwgdGhpcywgc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckludGVydmFsLnZhbHVlKCkpOwot
ICAgIG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lci5zdG9wKCk7Ci0gICAgY2xlYXJNb2RlKEhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUp
OwotfQotCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCkKIHsKICAgICBp
ZiAoKG1fY3VycmVudE1vZGUubW9kZSgpICYgbW9kZSkgPT0gbW9kZSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMTYxMCwxNyArMTYxMSwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZQogICAgIG1f
Y3VycmVudE1vZGUuc2V0TW9kZShtb2RlKTsKICAgICAvLyBNb2RlOjptb2RlKCkgY2FuIGJlIDMg
KFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCB8IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJl
SW5QaWN0dXJlKS4KICAgICAvLyBIVE1MVmlkZW9FbGVtZW50IGRvZXMgbm90IGV4cGVjdCBzdWNo
IGEgdmFsdWUgaW4gdGhlIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCgpIGNhbGxiYWNrLgotICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
ICYmIHNob3VsZE5vdGlmeU1vZGVsKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5m
dWxsc2NyZWVuTW9kZUNoYW5nZWQobW9kZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFy
TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9v
bCBzaG91bGROb3RpZnlNb2RlbCkKIHsKICAgICBpZiAoKH5tX2N1cnJlbnRNb2RlLm1vZGUoKSAm
IG1vZGUpID09IG1vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY3VycmVudE1vZGUuY2xl
YXJNb2RlKG1vZGUpOwotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgIGlmICht
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsICYmIHNob3VsZE5vdGlmeU1vZGVsKQogICAgICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQobV9jdXJyZW50TW9kZS5t
b2RlKCkpOwogfQogCkBAIC0xNjI5LDIzICsxNjMwLDYgQEAgYm9vbCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6aXNQbGF5aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0
CiAgICAgcmV0dXJuIGhhc01vZGUoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkgJiYgW3BsYXllckNvbnRyb2xsZXIoKSBp
c1BsYXlpbmddOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRS
ZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUoQk9PTCByZWFkeSkKLXsKLSAgICBpZiAobV9yZWFk
eVRvU3RvcFBpY3R1cmVJblBpY3R1cmUgPT0gcmVhZHkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlID0gcmVhZHk7Ci0gICAgaWYgKG1fcmVhZHlU
b1N0b3BQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmIChtX3N0b3BQaWN0dXJlSW5QaWN0
dXJlVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgbV9zdG9wUGljdHVyZUluUGljdHVy
ZVRpbWVyLnN0b3AoKTsKLSAgICAgICAgICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKLSAgICAgICAgICAgIG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCk7Ci0g
ICAgfQotfQotCiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaXNQaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dGVkOwogCiB2b2lkIFdlYkNvcmU6OnNldFN1cHBvcnRzUGljdHVyZUluUGljdHVyZShib29sIGlz
U3VwcG9ydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggODIzNzM4Nzg5
YzFmODA2MWFkYjRiYzc3ZmFhNDcxNjk3YzkyMDUwMy4uYzhjMDQ3ZjBjYjFmMWRiN2JkYjU2YzU5
N2ZmM2E0NDdkZDYyODIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0x
MjgsOCArMTI4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZp
bmFsOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENs
ZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUo
KSBmaW5hbDsKKyAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwog
CiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hh
bmdlZChib29sKSBvdmVycmlkZTsKQEAgLTM2MCw3ICszNTksNyBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgfSk7CiB9
CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmZ1bGxzY3JlZW5XaWxs
UmV0dXJuVG9JbmxpbmUoKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgp
KTsKICAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0
aGlzXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggYjIwMjhmYzI2YmYx
Y2ExYzk3MmJlNGNlODkwMTFjNjE2ZDUxZTQyMi4uZmViMGY2NDJkOGEwZmNlNDhhNDMzYWIzYjM0
NTBiY2EwZjkyZTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lk
IGRpZENsZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmUoKSBmaW5hbDsKLSAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9Jbmxp
bmUoKSBmaW5hbDsKIAogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogbV9tYW5hZ2Vy
OwogICAgIFJlZjxQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ+IG1fcGxheWJhY2tTZXNzaW9u
TW9kZWw7CkBAIC0xMjcsNyArMTI2LDYgQEAgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Q2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZpZGVvRnVsbHNjcmVlbk0KIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSB7IH07
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29s
IHZhbHVlKSA9IDA7CiB9OwogCkBAIC0xNzIsNiArMTcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGFkZENsaWVudEZvckNvbnRleHQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwog
ICAgIHZvaWQgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllcik7CiAKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENo
YW5nZShib29sKTsKIAogICAgIC8vIE1lc3NhZ2VzIGZyb20gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cgpAQCAtMTgwLDggKzE3OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRIYXNWaWRlb0NvbnRl
bnRMYXllcihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCB2YWx1ZSk7CiAg
ICAgdm9pZCBzZXRIYXNWaWRlbyhQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9v
bCk7CiAgICAgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwotICAgIHZvaWQgZW50ZXJGdWxs
c2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKLSAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRS
ZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBleGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIHZpc2libGUsIFdl
YkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CiAgICAgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxz
Y3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwpAQCAtMjAxLDcgKzE5OSw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2
aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7Ci0gICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVy
blRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIGJvb2wg
bV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIG1fbW9ja1BpY3R1cmVJblBpY3R1cmVXaW5kb3dTaXplIHsgRGVmYXVsdE1v
Y2tQaWN0dXJlSW5QaWN0dXJlV2luZG93V2lkdGgsIERlZmF1bHRNb2NrUGljdHVyZUluUGljdHVy
ZVdpbmRvd0hlaWdodCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDQxZjA2Y2M4ZThlMjUxOTc5YjU1MmE0M2EzMTY0NGZkMTI5MmE0NDYuLjQ0MTJlYjg1
MTRmMDcwNWU1ZmEyZjUxY2Y0NTc5MmQ2YjFiZDllYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDggKzI1LDEwIEBAIG1lc3NhZ2VzIC0+IFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0SGFzVmlkZW8oV2ViS2l0OjpQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCiAgICAg
U2V0VmlkZW9EaW1lbnNpb25zKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKQogICAgIFNl
dHVwRnVsbHNjcmVlbldpdGhJRChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQgdmlkZW9MYXllcklE
LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9E
aW1lbnNpb25zLCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29s
IGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKKyNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCi0gICAgRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3Qg
ZmluYWxSZWN0KQorI2VuZGlmCisgICAgRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxS
ZWN0KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogICAgIFNldElubGluZVJlY3QoV2ViS2l0OjpQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJl
Y3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQogICAgIFNldEhhc1ZpZGVvQ29udGVudExheWVy
KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29s
IHZhbHVlKQogICAgIENsZWFudXBGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDhj
ZmU4YzVkNzk3Mzg0ODg3OTI5YTYwNzkxODQwNGE4NmNjZDgxYTMuLjMzZjU3MGU3NjU3ZDBlZmI1
YmI3NTcyOTIzZmEwNTZkZmExMzQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI3
NCwxMiArMjc0LDYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgICAgIG1fbWFuYWdlci0+ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKG1fY29udGV4dElkKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bENvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKQotewotICAgIGlmIChtX21h
bmFnZXIpCi0gICAgICAgIG1fbWFuYWdlci0+ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSht
X2NvbnRleHRJZCk7Ci19Ci0KIHZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpyZXF1
ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBpZiAobV9tYW5hZ2VyKQpAQCAtNjA3LDExICs2MDEsMTMgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmkKICAgICB9CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpleGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQordm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKG1fY29u
dGV4dE1hcC5jb250YWlucyhjb250ZXh0SWQpKTsKLSAgICBpZiAoIW1fY29udGV4dE1hcC5jb250
YWlucyhjb250ZXh0SWQpKQorICAgIGlmICghbV9jb250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJ
ZCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47
CisgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgSW50UmVjdCBmaW5hbFdp
bmRvd1JlY3Q7CkBAIC02MjQsMTMgKzYyMCwxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZQog
I2Vsc2UKICAgICAgICAgZGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKTsKICNlbmRpZgorICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCku
ZXhpdEZ1bGxzY3JlZW4oZmluYWxSZWN0KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihlbnN1cmVJ
bnRlcmZhY2UoY29udGV4dElkKS5leGl0RnVsbHNjcmVlbihmaW5hbFJlY3QpKTsKICNlbHNlCi0g
ICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuZXhpdEZ1bGxzY3JlZW4oZmluYWxXaW5kb3dS
ZWN0LCBtX3BhZ2UtPnBsYXRmb3JtV2luZG93KCkpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGVu
c3VyZUludGVyZmFjZShjb250ZXh0SWQpLmV4aXRGdWxsc2NyZWVuKGZpbmFsV2luZG93UmVjdCwg
bV9wYWdlLT5wbGF0Zm9ybVdpbmRvdygpKSk7CiAjZW5kaWYKIH0KIApAQCAtNzAyLDYgKzY5OSw4
IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpjbGVhbnVwRnVsbHNjcmVlbihQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5l
UmVjdCkKIHsKKyAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0Owog
ICAgIG1fcGFnZS0+cm9vdFZpZXdUb1dpbmRvdyhpbmxpbmVSZWN0LCBpbmxpbmVXaW5kb3dSZWN0
KTsKQEAgLTc0OSw3ICs3NDgsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
cmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dAogCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKIHsKLSAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0
SWQpKTsKKyAgICBlbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKIH0KIAogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCkBAIC03ODIsNyArNzgxLDcgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFudXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGUKICAgICBtb2RlbC0+c2V0TGF5ZXJIb3N0VmlldyhudWxscHRyKTsKICAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZENsZWFu
dXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRNb2RlKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgIGludGVyZmFj
ZS0+c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25l
LCBmYWxzZSk7CiAgICAgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwogfQogCkBA
IC04MTEsMTUgKzgxMCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxs
c2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogewotICAgIG1fcGFnZS0+ZnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci19Ci0KLXZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKLXsKLSAgICBib29sIGlzVmll
d1Zpc2libGUgPSBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9Jbmxp
bmUoY29udGV4dElkLCBpc1ZpZXdWaXNpYmxlKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoY29u
dGV4dElkLCBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKSkpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4IDViNGEyNjBjOGE2
MDI1MTJlZjNhMzljYWE0MTRiNzY3OWE1YjQ3MGYuLmE5ZTZlZGMwOWU4MzlmZDg0ZjY1ZjYyMzli
NGJiMDcyOTM5NDg1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
dWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcklPUy5tbQpAQCAtNDI5LDcgKzQyOSw2IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZh
bCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKIEBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KQogLSAodm9p
ZClkaWRFbnRlclBpY3R1cmVJblBpY3R1cmU7Ci0tICh2b2lkKXByZXBhcmVUb0V4aXRQaWN0dXJl
SW5QaWN0dXJlOwogLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZTsKIEBlbmQKIApAQCAt
NDM5LDExICs0MzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbAotICAgIHsK
LSAgICAgICAgW21fcGFyZW50IHByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9
Ci0KICAgICB2b2lkIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlKGJvb2wgdmFs
dWUpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAodmFsdWUpCkBAIC00NzUsNyArNDY5LDcgQEAg
cHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuSW50ZXJhY3RpdmVUcmFuc2l0aW9u
PiBfaW50ZXJhY3RpdmVEaXNtaXNzVHJhbnNpdGlvbkNvb3JkaW5hdG9yOwogCiAgICAgV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCBf
dmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50OwotICAgIEJPT0wgX2luUGljdHVyZUlu
UGljdHVyZTsKKyAgICBCT09MIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUlu
UGljdHVyZTsKICAgICBCT09MIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0
dXJlOwogICAgIEJPT0wgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlOwog
CkBAIC02OTcsMTMgKzY5MSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcGFnZS0+c2V0U3Vw
cHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAKICAgICAgICAgICAgIGlmIChhdXRvKiB2
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewot
ICAgICAgICAgICAgICAgIEFTU0VSVCh2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGllbnQoKSA9
PSBudWxscHRyKTsKICAgICAgICAgICAgICAgICB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5zZXRD
bGllbnQoJl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQpOwotICAgICAgICAgICAg
ICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6
IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSkg
eworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9
IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9s
c01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlKFlFUyk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9pblBpY3R1cmVJ
blBpY3R1cmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZS0+cHJlcGFyZWRUb1Jlc3RvcmVGdWxsc2NyZWVuU3RhbmRieSgpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmICh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPmluUGljdHVyZUluUGlj
dHVyZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbW9kZWwgPSB2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfZW50ZXJGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGlj
dHVyZSA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbC0+cmVxdWVzdEZ1
bGxzY3JlZW5Nb2RlKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUpOwpAQCAtNzI3LDYgKzcyMCwxMCBAQCBwcml2YXRlOgogICAgIGlmIChfZnVs
bFNjcmVlblN0YXRlICE9IFdlYktpdDo6Tm90SW5GdWxsU2NyZWVuKQogICAgICAgICByZXR1cm47
CiAKKyAgICAvLyBTd2l0Y2ggdGhlIGFjdGl2ZSB0YWIgaWYgbmVlZGVkCisgICAgaWYgKGF1dG8q
IHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0uZ2V0KCkpCisgICAgICAgIHBhZ2UtPmZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxm
Ll9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtNzU5LDYgKzc1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IFdlYktpdDo6V2FpdGluZ1RvRXhp
dEZ1bGxTY3JlZW47CisgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gWUVTOwogCiAgICAgaWYgKGF1
dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnNldEFuaW1h
dGluZ0Z1bGxTY3JlZW4odHJ1ZSk7CkBAIC04MjksMTIgKzgyNyw4IEBAIHByaXZhdGU6CiAgICAg
ICAgIG1hbmFnZXItPmRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgfQogCi0gICAgaWYgKCFfaW5Q
aWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAgICAgICAgQVNTRVJU
KHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Q2xpZW50IHx8IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09IG51
bGxwdHIpOwotICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+c2V0Q2xpZW50KG51
bGxwdHIpOwotICAgICAgICB9Ci0gICAgfQorICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZSA9IHNlbGYuX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyBzZWxmLl92aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgX3No
b3VsZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+aW5QaWN0dXJlSW5QaWN0
dXJlKCk7CiAKICAgICBbX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKICAgICBfd2luZG93ID0gbmls
OwpAQCAtODYyLDcgKzg1Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9KTsKIAotICAg
IGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgYXV0byogcGFnZSA9
IFtzZWxmLl93ZWJWaWV3IF9wYWdlXS5nZXQoKTsKKyAgICBpZiAocGFnZSAmJiBwYWdlLT5pc1Zp
ZXdGb2N1c2VkKCkpCiAgICAgICAgIHBhZ2UtPmZvcmNlUmVwYWludChfcmVwYWludENhbGxiYWNr
LmNvcHlSZWYoKSk7CiAgICAgZWxzZQogICAgICAgICBfcmVwYWludENhbGxiYWNrLT5wZXJmb3Jt
Q2FsbGJhY2soKTsKQEAgLTkwMiwzOSArODk3LDMwIEBAIHByaXZhdGU6CiAKIC0gKHZvaWQpZGlk
RW50ZXJQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IFlFUzsK
LSAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwotfQotCi0tICh2b2lkKXByZXBhcmVU
b0V4aXRQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgaWYgKF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4
aXRQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiB2aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5f
dmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxs
cHRyOwotCi0gICAgaWYgKCF2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlKE5PKTsKLSAgICBfcmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1
cmUgPSBZRVM7Ci0KLSAgICBpZiAoIV9leGl0aW5nRnVsbFNjcmVlbikKLSAgICAgICAgW3NlbGYg
cmVxdWVzdEVudGVyRnVsbFNjcmVlbl07Ci0gICAgZWxzZQotICAgICAgICBfZW50ZXJSZXF1ZXN0
ZWQgPSBZRVM7CisgICAgX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0
dXJlID0gWUVTOworICAgIGlmIChfZnVsbFNjcmVlblN0YXRlID09IFdlYktpdDo6SW5GdWxsU2Ny
ZWVuKQorICAgICAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwogfQogCiAtICh2b2lk
KWRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IE5P
OwotICAgIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlID0gTk87Ci0g
ICAgaWYgKCFbc2VsZiBpc0Z1bGxTY3JlZW5dKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAg
ICAgICAgQVNTRVJUKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KTsKLSAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVl
bk1hbmFnZXItPnNldENsaWVudChudWxscHRyKTsKKyAgICBpZiAoIV9lbnRlckZ1bGxzY3JlZW5O
ZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9t
UGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5fdmlkZW9GdWxsc2NyZWVu
TWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOworICAgICAgICBp
ZiAodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+
cmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkoKSkgeworICAgICAgICAgICAgaWYgKCFfZXhpdGlu
Z0Z1bGxTY3JlZW4pIHsKKyAgICAgICAgICAgICAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSA9PSBX
ZWJLaXQ6OkluRnVsbFNjcmVlbikKKyAgICAgICAgICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlLT5wcmVwYXJlZFRvUmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBbc2VsZiByZXF1ZXN0RW50ZXJGdWxs
U2NyZWVuXTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIF9lbnRlclJlcXVl
c3RlZCA9IFlFUzsKKworICAgICAgICAgICAgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJl
SW5QaWN0dXJlID0gWUVTOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQor
CisgICAgX2VudGVyRnVsbHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmUgPSBOTzsKIH0K
IAogI3ByYWdtYSBtYXJrIC0KQEAgLTEwMDEsOSArOTg3LDExIEBAIHByaXZhdGU6CiAKIC0gKHZv
aWQpX2V4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkKIHsKLSAgICBpZiAoIVtzZWxmIGlzRnVsbFNj
cmVlbl0pCisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgPT0gV2ViS2l0OjpOb3RJbkZ1bGxTY3Jl
ZW4pCiAgICAgICAgIHJldHVybjsKIAorICAgIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9t
UGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworCiAgICAgYXV0byogbWFuYWdlciA9IHNlbGYuX21h
bmFnZXI7CiAgICAgaWYgKG1hbmFnZXIpCiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFeGl0RnVs
bFNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA0NGYwNzcxZTY4OTM5M2NkMWQw
MmFmNTI3ZTgyODAzNGMyM2I4YWIxLi40YTA2OWNlOGIzYjQ4OWMwYmNjNTA1ZDljNTEwZmE1MDE0
YmQyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtNjQsMTAgKzY0LDYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKnBhcmVu
dCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCkgZmluYWwKLSAgICB7Ci0gICAgfQotCiAgICAgdm9pZCBoYXNW
aWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29sIHZhbHVlKSBmaW5hbAogICAgIHsK
ICAgICAgICAgaWYgKHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAyOTc5YWUwY2Zk
YTUyNTM1NjM4ZmEwM2EwYWNhMjQ2YmE0MWI3Y2JkLi4yNDc0NjFkZTU2YjJiNTQxZGY0MjRkZGNm
OTczMGM2NGMyNTAxOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAwNSw5ICsxMDA1
LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGUKICAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVu
TWFuYWdlcigpLmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVu
dCwgbW9kZSwgc3RhbmRieSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVu
TWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50
KTsKKyAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5h
Z2VyKEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCBmNTQ3OTRhNjIzNmI1ZTBkNTdiZjc3Mzk2YzM2N2RhNjcwZWQ3Y2VkLi4wZjE1OGJmNzYxNTQw
NTk3YTNjODNiNTU5ZDJlMmQzZWMwYmE4OGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNzUs
NyArMjc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3Rh
bmRieSgpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwotICAgIHZv
aWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pIGZpbmFsOwogICAgIHZvaWQgc2V0VXBQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JikgZmluYWw7CiAgICAg
dm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgZmluYWw7CiAgICAgdm9pZCBwbGF5
YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRl
eCBiMWQ5ZGI4YTFmMzlkZDBhZGRjOTQyMDNiMmZlM2M3MDY3ZmY5OTFiLi5kNGQxOTIzNDYxNjUy
MGUwY2E0MmVkZDdiMTBjNmNlMjRjZDU0YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0Z1
bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xMDMsNyArMTA0LDcgQEAgcHJpdmF0
ZToKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBtX21hbmFnZXI7CiAgICAgUGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIgbV9jb250ZXh0SWQ7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PExheWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKLSAgICBBbmltYXRp
b25UeXBlIG1fYW5pbWF0aW9uVHlwZSB7IGZhbHNlIH07CisgICAgQW5pbWF0aW9uVHlwZSBtX2Fu
aW1hdGlvblR5cGUgeyBBbmltYXRpb25UeXBlOjpOb25lIH07CiAgICAgYm9vbCBtX3RhcmdldElz
RnVsbHNjcmVlbiB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1fZnVsbHNjcmVlbk1vZGUgeyBXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lIH07CiAgICAgYm9vbCBtX2Z1
bGxzY3JlZW5TdGFuZGJ5IHsgZmFsc2UgfTsKQEAgLTEyMyw3ICsxMjQsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNWaWRl
b0Z1bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3Q7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpOwot
ICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Jik7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVl
blRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAKIHByb3Rl
Y3RlZDoKQEAgLTE0OSw3ICsxNTAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXF1ZXN0VXBk
YXRlSW5saW5lUmVjdChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9p
ZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIpOwogICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIpOworI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgZGlk
U2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKKyNlbmRp
ZgogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPik7CkBAIC0x
NTcsNyArMTYwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVu
Y2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3Qg
Ym91bmRzLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICB2b2lkIHNldFZpZGVvTGF5
ZXJHcmF2aXR5RW51bShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgdW5zaWduZWQg
Z3Jhdml0eSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSk7Ci0gICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2libGUpOworICAg
IHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2libGUpOwogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hh
cmluZ1BvbGljeUFuZENvbnRleHRVSUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIs
IE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9s
aWN5QW5kQ29udGV4dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDVkNzg5ODdhMmMwYmI5OGEwMzQ0
OGQ1YTY1MGIyNjgwZmEyMWUwOGQuLmJkN2JiYTU3MjFkZDE0MmJhYzU0MmJjODkxZDc1YzJiZTRi
MTlhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw5
IEBAIG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFJlcXVlc3RVcGRh
dGVJbmxpbmVSZWN0KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkKQogICAgIFJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihXZWJLaXQ6OlBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBSZXR1cm5WaWRlb0NvbnRlbnRM
YXllcihXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkK
KyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEaWRTZXR1cEZ1bGxzY3JlZW4oV2ViS2l0
OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCisjZW5kaWYKICAg
ICBXaWxsRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQpCiAgICAgRGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVu
KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IHNpemUpCkBAIC0zNCw3ICszNiw3IEBAIG1lc3NhZ2Vz
IC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFNldFZpZGVvTGF5ZXJGcmFtZUZlbmNl
ZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2Vi
Q29yZTo6RmxvYXRSZWN0IGJvdW5kcywgTWFjaFNlbmRSaWdodCBtYWNoU2VuZFJpZ2h0KQogICAg
IFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCwgdW5zaWduZWQgZ3Jhdml0eSkKICAgICBGdWxsc2NyZWVuTW9k
ZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2
aWRlb0Z1bGxzY3JlZW5Nb2RlKQotICAgIEZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoV2Vi
S2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQ
YWdlVmlzaWJsZSkKKyAgICBGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJs
ZSkKICAgICBSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChXZWJLaXQ6OlBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkgLT4gKGVudW06dWludDhf
dCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcg
cm91dGluZ0NvbnRleHRVSUQpIEFzeW5jCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXgg
ZjdmYTc1OWU5ZWViMWI2Y2JkMTkyZDY5MDY0ZjY2N2U0OGJhNWNkMC4uOGNlZThmOGRiM2ViZmQz
N2YwMWVlZjdhNWY0ZmM0M2E1NGVkMjFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI1Nyw3ICsy
NTcsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICBhdXRvIHZpZGVvUmVjdCA9IGlu
bGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KTsKICAgICBGbG9hdFJlY3QgdmlkZW9MYXllckZy
YW1lID0gRmxvYXRSZWN0KDAsIDAsIHZpZGVvUmVjdC53aWR0aCgpLCB2aWRlb1JlY3QuaGVpZ2h0
KCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1ZSk7CisgICAg
aWYgKG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9u
ZSkKKyAgICAgICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1ZSk7CisgICAg
ZWxzZQorICAgICAgICBpbnRlcmZhY2UtPnNldFRhcmdldElzRnVsbHNjcmVlbihmYWxzZSk7CisK
ICAgICBpbnRlcmZhY2UtPnNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUpOwogICAgIGludGVyZmFjZS0+
c2V0RnVsbHNjcmVlblN0YW5kYnkoc3RhbmRieSk7CiAgICAgbW9kZWwtPnNldFZpZGVvRWxlbWVu
dCgmdmlkZW9FbGVtZW50KTsKQEAgLTI4OCw3ICsyOTIsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0Vs
ZW1lbgogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9z
dGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgRmxvYXRTaXplKHZpZGVvRWxl
bWVudC52aWRlb1dpZHRoKCksIHZpZGVvRWxlbWVudC52aWRlb0hlaWdodCgpKSwgbV9wYWdlLT5k
ZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1Bp
Y3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmIHZpZGVvRWxlbWVudCkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhp
dFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCVwKSIsIHRoaXMpOwogICAgIEFT
U0VSVChtX3BhZ2UpOwpAQCAtMjk2LDEyICszMDAsMjAgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxW
aWQKIAogICAgIGF1dG8gY29udGV4dElkID0gbV92aWRlb0VsZW1lbnRzLmdldCgmdmlkZW9FbGVt
ZW50KTsKICAgICBhdXRvJiBpbnRlcmZhY2UgPSBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKTsK
LSAgICBpbnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKICAgICBpZiAoaW50
ZXJmYWNlLmFuaW1hdGlvblN0YXRlKCkgIT0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4
dDo6QW5pbWF0aW9uVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50ZXJmYWNl
LnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1h
dGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkLCBpbmxp
bmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpKTsKKyAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNjcmVl
bihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KSksIFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHN1Y2Nlc3MpIG11dGFibGUgewor
ICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8mIGlu
dGVyZmFjZSA9IGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpOworICAgICAgICBpbnRlcmZhY2Uu
c2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKKyAgICAgICAgaW50ZXJmYWNlLnNldEFuaW1h
dGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5cGU6
OkZyb21GdWxsc2NyZWVuKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAg
fSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVl
blRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9F
bGVtZW50LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgdGFyZ2V0TW9kZSkKQEAgLTM4OSwxOSArNDAxLDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6cmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50CiAgICAgfSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyIGNvbnRleHRJZCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4
dElkKTsKIAogICAgIEFTU0VSVChtX3BhZ2UpOwogICAgIGF1dG8gW21vZGVsLCBpbnRlcmZhY2Vd
ID0gZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKLQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4o
Y29udGV4dElkKSk7Ci0gICAgfSk7Ci0jZWxzZQogICAgIENBTGF5ZXIqIHZpZGVvTGF5ZXIgPSBp
bnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+cm9vdExheWVyKCk7CiAKICAgICBtb2Rl
bC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewpAQCAtNDEwLDgg
KzQxNiw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVu
KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyCiAgICAgICAgICAgICAgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNj
cmVlbihjb250ZXh0SWQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7Ci0jZW5kaWYKIH0KKyNlbmRp
ZgogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiB7CkBAIC00NDUsMTMgKzQ1
MSwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbihQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcgogCiAgICAgdmlkZW9FbGVtZW50LT5kaWRF
bnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoc2l6ZS52YWx1ZU9yKFdlYkNvcmU6OkZs
b2F0U2l6ZSgpKSk7CiAKLSAgICBpZiAoaW50ZXJmYWNlLT50YXJnZXRJc0Z1bGxzY3JlZW4oKSkK
KyAgICBpZiAoaW50ZXJmYWNlLT50YXJnZXRJc0Z1bGxzY3JlZW4oKSB8fCBpbnRlcmZhY2UtPmZ1
bGxzY3JlZW5TdGFuZGJ5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGV4aXQgZnVsbHNj
cmVlbiBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmltYXRp
b24uCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1lbnRdIHsKICAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CisgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRl
b0VsZW1lbnQsIFtdKGJvb2wpIHsgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw3ICs0NzUsNyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1
bGxzY3JlZW4oY29udGV4dElkKSk7CiAgICAgfSk7CiAjZWxzZQotICAgIG1vZGVsLT53YWl0Rm9y
UHJlcGFyZWRGb3JJbmxpbmVUaGVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwg
Y29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKKyAgICBtb2RlbC0+d2Fp
dEZvclByZXBhcmVkRm9ySW5saW5lVGhlbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhp
cyksIGNvbnRleHRJZCwgaW50ZXJmYWNlLCBtb2RlbF0oKSBtdXRhYmxlIHsKICAgICAgICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZSwgbW9kZWxdICgpIG11
dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwg
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVy
ZmFjZV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gewpAQCAtNTI2LDcgKzUzMiw3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVuCiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRWaWRlb0xheWVy
R3Jhdml0eSgoTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KWdyYXZpdHkpOwogfQogCi12
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUo
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZp
c2libGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wg
aXNQYWdlVmlzaWJsZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCBiZjI5YmVjZTc1NWU2ZjU1MWZjM2NjZjQ3NzJkNzZkMDU2NTYyOTY4
Li4zN2M4NjI2NjA5YTFlNjJjZmE3N2VhNmY4NDkyNzU1OWViYjRhMDA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMjA1LDcgKzIwNSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwotICAgIHZv
aWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pIGZpbmFsOwogICAgIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYs
IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmlu
YWw7CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGUxMTgyYmQ0ZDU5NDBm
MzUxYjc2ZjhjZjA0MThhN2RlZTM5YzI5MTEuLjZmZDdhMjY1MzIxNTVjOWM4ZDU3NTM2NTUxNGU0
ZjRhMWE4Y2I4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTk5MywxNCArOTkzLDE1IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChI
VE1MVmlkZW9FbGVtZW50JiB2aWRlCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCiAgICAgICAgIHZp
ZGVvRWxlbWVudC5kaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwogICAgIGVsc2UKICAg
ICAgICAgW21fd2ViVmlldyBfZXhpdFZpZGVvRnVsbHNjcmVlbl07Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgY29t
cGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0Vmlk
ZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50JiB2aWRl
b0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB0YXJn
ZXRNb2RlKQo=
</data>
<flag name="commit-queue"
          id="429969"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413383</attachid>
            <date>2020-11-05 18:33:20 -0800</date>
            <delta_ts>2020-11-05 20:15:42 -0800</delta_ts>
            <desc>Rebased WIP patch</desc>
            <filename>bug-218419-20201105183319.patch</filename>
            <type>text/plain</type>
            <size>67874</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzNTZkYTE2YTc0NjNi
MmE2NWUyZjdhYmZkNGE2N2Y5ZWY5NDE2My4uNjg1ZmM5MzVlYjlkNTM4YmE3Zjc0OWI4MTBiMTBl
NGNhMjAxYzcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTExLTA1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVt
ZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxz
Y3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxs
c2NyZWVuU3RhbmRieSk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0aW9u
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxz
Y3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50
OjpmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6cHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmFpbGVkVG9TdGFydFBpY3R1
cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6Ondp
bGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21w
bGV0aW9uSGFuZGxlcik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmRvU2V0dXApOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVkVG9SZXN0b3JlRnVsbHNjcmVlblN0YW5kYnkpOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbkhhbmRsZXIpOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhh
bmRsZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRv
U3RhbmRieSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9k
ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYXJNb2RlKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzdG9wUGljdHVyZUluUGlj
dHVyZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRl
eHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTExLTA1
ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBDTTogU3dp
dGNoIHRvIEpTT04gcmVwb3J0IGZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0Njk4ZDUzN2FlOTJkNDc3YTAw
ODk5ZjM4OTQ0ZTUxOWYxM2EwN2JlLi5hM2YxMDE5YTdmMzIyYjBjYzYyZDJkNTE0MmM2ZGEwYzQ1
Zjk2YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTA1ICBQZW5nIExpdSAg
PHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVtZW50IGZ1
bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNl
dHVwRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldpbGxSZXR1
cm5Ub0lubGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5F
bnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgt
W1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuXSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX2NvbXBsZXRlZEV4aXRG
dWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlk
RW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciBfZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseV0pOgorICAgICAg
ICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHByZXBhcmVUb0V4aXRQaWN0dXJlSW5Q
aWN0dXJlXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4p
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTEx
LTA1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNP
U10gUmVtb3ZlIG1kbnNyZXNwb25kZXIgYWNjZXNzIGZyb20gV2ViS2l0IHByb2Nlc3NlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGVkNzQ0ODgwMWZkNGU1ZGIxMTY4MWRjMjZlZTZk
MDEzMjcwMTAxOTEuLjIzOTkwN2Y3ZGJjNTUwNDU0ZTM2MjU3NDY0MWMyOWI3ODNjZDFkY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMS0wNSAg
UGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFBpUCByZXR1cm4gdG8g
ZWxlbWVudCBmdWxsIHNjcmVlbiBpcyBub3Qgc21vb3RoIG9uIHNvbWUgd2Vic2l0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODQxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisKIDIwMjAtMTEtMDQgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNb3ZlIHRoZSBpbnRl
cm5hbCBHUFUgcmVuZGVyaW5nIGZsYWdzIGZyb20gV2ViUGFnZSB0byBXZWJQcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyZWNjNzdiNzRhMDljZmEw
MjYwMTY1MDc0MzkxMjA4Njg2OTA1MjcwLi4xNGMzOTc3Y2IxZmM4YmU2Yzg3YTBmMmZkZTgyMmJk
MTMwNDBmMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTU5NzIsNyArNTk3Miw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4o
KQogCiAgICAgaWYgKGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpIHx8
IGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkgewogICAgICAgICBzZXRG
dWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7Ci0gICAgICAgIG1fY2hhbmdp
bmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0aGlzKSwgVmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpOwogICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKG9sZFZpZGVvRnVsbHNjcmVlbk1vZGUpKSB7CiAg
ICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpIHsKQEAgLTYwMzIsNyArNjAzMSw5
IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2Ny
ZWVuU3RhbmRieShib29sIHZhbHVlKQogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkp
CiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PigqdGhp
cyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpOwog
ICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVu
dD4oKnRoaXMpKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgp
LmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxl
bWVudD4oKnRoaXMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShhdXRv
IHN1Y2Nlc3MpIG11dGFibGUgeworICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5
ID0gIXN1Y2Nlc3M7CisgICAgICAgIH0pOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Ondp
bGxCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmNwcAppbmRleCAxNWRhYjFmNDY0YTFlNzMyMWY0NjU4M2JiOTZhOGRkMGFlYTFmMTI2
Li42ZDI3ZjM2YzE3ODEzNWM5YWRjMWViZmJlMjYzNWNkNTU5MDI2NDhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTQ2NywxMiArNDY3LDEzIEBAIEhUTUxW
aWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZSBIVE1MVmlkZW9FbGVtZW50Ojp0b1By
ZXNlbnRhdGlvbk1vZGUoSFRNCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNl
bnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgSU5GT19MT0co
TE9HSURFTlRJRklFUiwgIiwgbW9kZSA9ICIsICBtb2RlKTsKLSAgICBzZXRQcmVzZW50YXRpb25N
b2RlKG1vZGUpOworICAgIGlmICghaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKSkKKyAg
ICAgICAgc2V0UHJlc2VudGF0aW9uTW9kZShtb2RlKTsKIH0KIAogdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogewot
ICAgIGlmIChpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpIHx8IHRvUHJlc2VudGF0aW9u
TW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBtb2RlKQorICAgIGlmICh0b1ByZXNlbnRhdGlvbk1v
ZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gbW9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0
byB2aWRlb0Z1bGxzY3JlZW5Nb2RlID0gdG9GdWxsc2NyZWVuTW9kZShtb2RlKTsKQEAgLTQ4MSw3
ICs0ODIsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFByZXNlbnRhdGlvbk1vZGUoVmlk
ZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0g
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpIHsKICAgICAgICAgaWYgKGlzRnVsbHNjcmVlbigpKSB7
CiAgICAgICAgICAgICBpZiAodG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09
IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAg
ICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworICAgICAgICAgICAgICAgIG1f
ZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwogCiAgICAgICAgICAgICBleGl0RnVsbHNj
cmVlbigpOwogICAgICAgICB9CkBAIC00OTMsOSArNDk0LDkgQEAgdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgbV9pc0VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSA9IHRydWU7CisgICAgICAgIG1fZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1
ZTsKICAgICBlbHNlIGlmIChmdWxsc2NyZWVuTW9kZSgpID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQ
aWN0dXJlSW5QaWN0dXJlKQotICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0
cnVlOworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKIAogICAgIGVu
dGVyRnVsbHNjcmVlbih2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKIH0KQEAgLTUwNyw4ICs1MDgsOCBA
QCBhdXRvIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFByZXNlbnRhdGlvbk1vZGUoKSBjb25zdCAt
PiBWaWRlb1ByZXNlbnRhdGlvbk1vZGUKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRl
ckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogewot
ICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIG1faXNFbnRl
cmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUpIHsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsK
ICAgICAgICAgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKGZhbHNlKTsKIAogI2lmIEVO
QUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpAQCAtNTIwLDggKzUyMSw4IEBAIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9pc0V4
aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGlj
dHVyZSA9IGZhbHNlOworICAgIGlmIChtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAg
ICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKICNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKICAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVy
KQogICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJl
SW5QaWN0dXJlKCk7CkBAIC01MzMsOCArNTM0LDggQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojpk
aWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3QgRmxvYXRTaXplJiBzaXoK
IAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGlj
dHVyZSgpCiB7Ci0gICAgaWYgKG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSkgewotICAgICAg
ICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICBpZiAobV9leGl0aW5n
UGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0g
ZmFsc2U7CiAgICAgICAgIHNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZShmYWxzZSk7CiAK
ICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKQEAgLTU2MCw3ICs1NjEsNyBAQCB2
b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0
UmVjdCYgZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKQotICAgIGlmICghbV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSAmJiAhbV9p
c0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlICYmIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQor
ICAgIGlmICghbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgJiYgIW1fZXhpdGluZ1BpY3R1cmVJ
blBpY3R1cmUgJiYgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCiAgICAgICAgIG1fcGljdHVy
ZUluUGljdHVyZU9ic2VydmVyLT5waWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXpl
KGZyYW1lLnNpemUoKSkpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCmluZGV4IGVmZmYzZjY2ZTgxM2I3Nzg2OTgwY2FiY2EzNTEwYjEyMGRiNjA0MDIuLjE3
ZDY1MjE5MjA1MzdmY2RlOGMwNGI0Mjc4MTZkY2E3NzU0NTU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xNDIsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0IHsgMCB9OwogCiAjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIGJvb2wgbV9pc0VudGVyaW5nUGljdHVyZUluUGlj
dHVyZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNmRkZDliYzcwYzMwNjYyYzRmZGY3ZDY0NDAyOTIwNWNhMmExNGI5OS4uN2Fm
MTc4ZTk4NjY4ZGE5YzcxNDQ0NDUxMzI2MDY5NzQ4N2Q4MzVjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllcikg
eyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyID0gW10oYm9vbCkg
eyB9KSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRW
aWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFs
c2U7IH0gCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmluZGV4IGY0OTEyNDYyN2U2YWI1NzJl
Yzc5MmYwMjdjYzNmOWM4N2M2YjhhNzUuLjYzMTc5NzgxODFhOTg4ZDcyN2Y1YTUwNWZkOWRjMGMy
NmNmY2JkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaApAQCAtNDIsNyArNDIsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmdWxs
c2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKaW5kZXggOWY4
ZGQwODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0NzFiMDljYWRkYi4uMGZlZDc5NWFjYTlkOTg2ZmQx
OThmY2VjOGRmYjVjNTBhNWFkMmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCkBAIC04MSw3ICs4MSw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUoKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRQ
aWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vZGVsRGVzdHJveWVkKCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IDUyODAzMDNlNDg4YWUyMzgwYTU1OWNmNWEx
MWVlNzFkMmE3ZTU5M2UuLjhiZjQyNGRmYWFjY2M4OTgwNjJlZjQ1YjcyZDc5MDNjZWYyMzNjODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFVJVmlldyYgdmlkZW9WaWV3LCBj
b25zdCBJbnRSZWN0JiBpbml0aWFsUmVjdCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lv
bnMsIFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjaywgYm9vbCBzdGFu
ZGJ5KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVudGVyRnVsbHNjcmVlbigpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50UmVjdCYgZmluYWxSZWN0
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3Qm
IGZpbmFsUmVjdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbigp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwpAQCAtODksNiArODksNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3Jl
ZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyKGJv
b2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW5saW5lUmVjdChjb25zdCBJbnRSZWN0
JiwgYm9vbCB2aXNpYmxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXBhcmVkVG9SZXN0
b3JlRnVsbHNjcmVlblN0YW5kYnkoKTsKIAogICAgIGVudW0gY2xhc3MgRXhpdEZ1bGxTY3JlZW5S
ZWFzb24gewogICAgICAgICBEb25lQnV0dG9uVGFwcGVkLApAQCAtMTM2LDYgKzEzNyw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXli
YWNrRGlzYWJsZWQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGxpY2F0aW9u
RGlkQmVjb21lQWN0aXZlKCk7CisgICAgYm9vbCBpblBpY3R1cmVJblBpY3R1cmUoKSBjb25zdCB7
IHJldHVybiBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSB8fCBtX2N1cnJlbnRNb2RlLmhhc1Bp
Y3R1cmVJblBpY3R1cmUoKTsgfQorICAgIGJvb2wgcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnko
KSBjb25zdCB7IHJldHVybiBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5OyB9CiAKICAgICB2
b2lkIHdpbGxTdGFydFBpY3R1cmVJblBpY3R1cmUoKTsKICAgICB2b2lkIGRpZFN0YXJ0UGljdHVy
ZUluUGljdHVyZSgpOwpAQCAtMTQ2LDEwICsxNDksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGl0
RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICopOwogICAgIHZvaWQgZW50
ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKik7CiAgICAgYm9vbCBp
c1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUoQk9PTCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlKTsKLSAgICB2b2lkIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgc2hvdWxkTm90
aWZ5TW9kZWwpOworICAgIHZvaWQgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCk7CiAgICAgYm9vbCBoYXNN
b2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRNb2RlLmhhc01vZGUobW9kZSk7IH0KIAogICAgIFVJVmlld0Nv
bnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpOwpAQCAtMTY2LDcgKzE2OCw2IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJldHVyblRvU3RhbmRieSgpOwogICAgIHZvaWQgZG9FbnRl
ckZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIHdhdGNoZG9nVGltZXJGaXJlZCgpOwotICAgIHZvaWQg
c3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckZpcmVkKCk7CiAgICAgV2ViQVZQbGF5ZXJDb250cm9s
bGVyICpwbGF5ZXJDb250cm9sbGVyKCkgY29uc3Q7CiAKICAgICBSZWY8UGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQVZLaXQ+IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlOwpAQCAtMTg0LDE0ICsx
ODUsMTQgQEAgcHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckxheWVyVmlldz4g
bV9wbGF5ZXJMYXllclZpZXc7CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiBtX3ByZXBh
cmVUb0lubGluZUNhbGxiYWNrOwogICAgIFJ1bkxvb3A6OlRpbWVyPFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0PiBtX3dhdGNoZG9nVGltZXI7Ci0gICAgUnVuTG9vcDo6VGltZXI8VmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lcjsKICAg
ICBGbG9hdFJlY3QgbV9pbmxpbmVSZWN0OwogICAgIFJvdXRlU2hhcmluZ1BvbGljeSBtX3JvdXRl
U2hhcmluZ1BvbGljeSB7IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCB9OwogICAgIFN0cmlu
ZyBtX3JvdXRpbmdDb250ZXh0VUlEOwogICAgIGJvb2wgbV9hbGxvd3NQaWN0dXJlSW5QaWN0dXJl
UGxheWJhY2sgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0
b3BwaW5nUGlQIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVu
V2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Jlc3Rv
cmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5IHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9z
ZXR1cE5lZWRzSW5saW5lUmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2V4aXRGdWxsc2NyZWVu
TmVlZElubGluZVJlY3QgeyBmYWxzZSB9OwpAQCAtMjI0LDcgKzIyNSw2IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1fc2hvdWxkSWdub3JlQVZLaXRDYWxsYmFja0Fib3V0RXhpdEZ1bGxzY3JlZW5S
ZWFzb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07Ci0g
ICAgYm9vbCBtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSB7IHRydWUgfTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlYWY2NzQ1N2VkOWE2OTdjOTljYTViZmExNzBk
M2MwNzk3ZTg5ZTM1Li5lMTRiYWZmNTY5NjQyOGMxNDQwODA2MTIyNDliMGRmZWJkODdiMjcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC04NSw3ICs4NSw2IEBAIHN0YXRpYyBjb25zdCBj
aGFyKiBib29sU3RyaW5nKGJvb2wgdmFsKQogI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBTZWNvbmRz
IGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgeyAxX3MgfTsKLXN0YXRpYyBjb25zdCBTZWNv
bmRzIHN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJJbnRlcnZhbCB7IDFfcyB9Owogc3RhdGljIGJv
b2wgaWdub3JlV2F0Y2hkb2dGb3JEZWJ1Z2dpbmcgPSBmYWxzZTsKIAogQGludGVyZmFjZSBBVlBs
YXllclZpZXdDb250cm9sbGVyIChEZXRhaWxzKQpAQCAtODIzLDcgKzgyMiw2IEBAIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdChQbGF5
YmFja1Nlc3Npb25JbnRlCiAgICAgOiBtX3BsYXliYWNrU2Vzc2lvbkludGVyZmFjZShwbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgLCBtX3BsYXllclZpZXdDb250cm9sbGVyRGVsZWdhdGUo
YWRvcHROUyhbW1dlYkFWUGxheWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
KQogICAgICwgbV93YXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3YXRjaGRvZ1RpbWVyRmlyZWQpCi0gICAgLCBtX3N0b3BQ
aWN0dXJlSW5QaWN0dXJlVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJGaXJlZCkKIHsKIH0K
IApAQCAtOTU1LDE5ICs5NTMsMjIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZW50ZXJGdWxsc2NyZWVuKCkKICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwogfQogCi12b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihjb25zdCBJbnRS
ZWN0JiBmaW5hbFJlY3QpCitib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0
RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpCiB7Ci0gICAgaWYgKG1fd2F0Y2hk
b2dUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3RvcCgpOworICAg
IG1fd2F0Y2hkb2dUaW1lci5zdG9wKCk7CiAKLSAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJblBp
Y3R1cmUpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIG1h
eSBhc2sgYSB2aWRlbyB0byBleGl0IHN0YW5kYnkgd2hpbGUgdGhlIHZpZGVvCisgICAgLy8gaXMg
ZW50ZXJpbmcgcGljdHVyZS1pbi1waWN0dXJlLiBXZSBuZWVkIHRvIGlnbm9yZSB0aGUgcmVxdWVz
dCBpbiB0aGF0IGNhc2UuCisgICAgaWYgKG1fc3RhbmRieSAmJiBtX2VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV90YXJnZXRNb2RlID0gSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZTsKIAogICAgIHNldElu
bGluZVJlY3QoZmluYWxSZWN0LCB0cnVlKTsKICAgICBkb0V4aXRGdWxsc2NyZWVuKCk7CiAgICAg
bV9zaG91bGRJZ25vcmVBVktpdENhbGxiYWNrQWJvdXRFeGl0RnVsbHNjcmVlblJlYXNvbiA9IHRy
dWU7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQpAQCAtOTc1LDkgKzk3Niw2IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKICAgICBMT0co
RnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNj
cmVlbiglcCkiLCB0aGlzKTsKICAgICBtX3Nob3VsZElnbm9yZUFWS2l0Q2FsbGJhY2tBYm91dEV4
aXRGdWxsc2NyZWVuUmVhc29uID0gZmFsc2U7CiAKLSAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fY2xlYW51cE5lZWRzUmV0dXJuVmlk
ZW9Db250ZW50TGF5ZXIgPSB0cnVlOwogICAgIGlmIChtX2hhc1ZpZGVvQ29udGVudExheWVyICYm
IG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7CiAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyLT5yZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpOwpAQCAtMTAzNSw3ICsxMDMzLDkg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7CiAg
ICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG51bGxwdHI7CiAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIgPSBudWxscHRyOwotICAgIAorCisgICAgbV93YXRjaGRvZ1RpbWVyLnN0b3Ao
KTsKKyAgICBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogICAgIGNsZWFudXBG
dWxsc2NyZWVuKCk7CiB9CiAKQEAgLTEwOTQsMTEgKzEwOTQsOCBAQCBib29sIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGlj
dHVyZSgpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGlj
dHVyZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQog
ewogICAgIG1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAg
ICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKKyAgICBpZiAobV9mdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLSAgICAgICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0
dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1
bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKTsKLSAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTEy
MCwyOCArMTExNywyNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxs
U3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCVw
KSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSk7CisgICAgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCAhbV9lbnRlckZ1bGxz
Y3JlZW5OZWVkc0VudGVyUGljdHVyZUluUGljdHVyZSk7CiAgICAgW21fcGxheWVyVmlld0NvbnRy
b2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107CiAgICAgW21fdmlld0NvbnRyb2xs
ZXIgX3NldElnbm9yZUFwcFN1cHBvcnRlZE9yaWVudGF0aW9uczpOT107CiAKICAgICBpZiAobV9j
dXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkpIHsKLSAgICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1
bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBZRVM7CisgICAgICAgIG1fc2hvdWxkUmV0dXJuVG9G
dWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAgICAgICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CiAgICAgICAgIFtt
X3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6WUVTIGNvbXBsZXRp
b25IYW5kbGVyOltwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKEJPT0wg
c3VjY2VzcywgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgICAgIGV4aXRGdWxsc2NyZWVuSGFu
ZGxlcihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgIH1dOwogICAgIH0gZWxzZSB7CisgICAgICAg
IGlmIChtX3N0YW5kYnkpCisgICAgICAgICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldo
ZW5TdG9wcGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworCiAgICAgICAgIFttX3dpbmRvdyBz
ZXRIaWRkZW46WUVTXTsKICAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNl
dEhpZGRlbjpZRVNdOwogICAgIH0KIAotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQot
ICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUo
KTsKLQogICAgIGlmIChtX2VudGVyRnVsbHNjcmVlbk5lZWRzRW50ZXJQaWN0dXJlSW5QaWN0dXJl
KQogICAgICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwotCi0gICAgbV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTE1MywxMSArMTE0OCwxMCBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmYWlsZWRUb1N0YXJ0UGljdHVy
ZUluUGljdHVyZSgpCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVlbigpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkgewogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
LT5mYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgpOwotCi0gICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwpCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxs
c2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25l
KTsKKyAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxT
dG9wUGljdHVyZUluUGljdHVyZSgpCkBAIC0xMTY1LDcgKzExNTksNyBAQCB2b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogICAgIExP
RyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGlj
dHVyZUluUGljdHVyZSglcCkiLCB0aGlzKTsKIAogICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSB0cnVlOwotICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQ
ID0gZmFsc2U7CisgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaWN0
dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2Ny
ZWVuKCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApCiAg
ICAgICAgIHJldHVybjsKQEAgLTExODAsOCArMTE3NCwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUluUGljdHVyZSgpCiAgICAgbV90YXJnZXRN
b2RlLnNldFBpY3R1cmVJblBpY3R1cmUoZmFsc2UpOwogICAgIFttX3ZpZXdDb250cm9sbGVyIF9z
ZXRJZ25vcmVBcHBTdXBwb3J0ZWRPcmllbnRhdGlvbnM6WUVTXTsKIAorICAgIGlmIChtX3Jlc3Rv
cmluZ0Z1bGxzY3JlZW5TdGFuZGJ5KSB7CisgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSBmYWxzZTsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsK
KyAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgICAgICBtX3ZpZGVv
RnVsbHNjcmVlbk1vZGVsLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOworCisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkgfHwg
bV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApIHsKLSAgICAgICAg
Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1
cmVJblBpY3R1cmUpOworICAgICAgICBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSwgIW1fZXhpdEZ1bGxzY3JlZW5OZWVk
c0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJ
blBpY3R1cmVTdG9wKTsKICAgICAgICAgW21fd2luZG93IG1ha2VLZXlXaW5kb3ddOwogICAgICAg
ICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsK
IApAQCAtMTE5OCwxMSArMTIwMSw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghbV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUpIHsKLSAgICAgICAgaWYgKCFt
X3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fc3Rv
cFBpY3R1cmVJblBpY3R1cmVUaW1lci5zdGFydE9uZVNob3Qoc3RvcFBpY3R1cmVJblBpY3R1cmVU
aW1lckludGVydmFsKTsKLSAgICB9IGVsc2UKLSAgICAgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOworICAgIGNs
ZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJl
SW5QaWN0dXJlLCAhbV9leGl0RnVsbHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmUpOwog
CiAgICAgW21fcGxheWVyTGF5ZXJWaWV3IHNldEJhY2tncm91bmRDb2xvcjpjbGVhclVJQ29sb3Io
KV07CiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEJhY2tncm91bmRDb2xv
cjpjbGVhclVJQ29sb3IoKV07CkBAIC0xMjEyLDIwICsxMjExLDE0IEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKIAogICAgIGlm
IChtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVyZSkKICAgICAgICAgZG9F
eGl0RnVsbHNjcmVlbigpOwotICAgIGVsc2UgaWYgKG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUp
IHsKLSAgICAgICAgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwotCi0gICAgICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKLSAgICB9CiB9CiAKIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3Rv
cFdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKEJPT0wgcmVz
dG9yZWQpKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxl
ciglcCkiLCB0aGlzKTsKIAotICAgIGlmIChtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5T
dG9wcGluZ1BpUCkgewotICAgICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9w
cGluZ1BpUCA9IGZhbHNlOworICAgIGlmIChtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5T
dG9wcGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxz
Y3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAgICAgICAgIG1fcmVz
dG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wID0gdHJ1ZTsKIAogICAgICAg
ICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKQEAgLTEyMzYsNiArMTIyOSwxMiBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0
b3BXaXRoQ29tcGxldGlvbgogICAgICAgICAgICAgZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihzdWNj
ZXNzLCBlcnJvcik7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZXNzKTsKICAg
ICAgICAgfV07CisKKyAgICAgICAgaWYgKG1fc3RhbmRieSkgeworICAgICAgICAgICAgbV9yZXN0
b3JpbmdGdWxsc2NyZWVuU3RhbmRieSA9IHRydWU7CisgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBzZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2s6Tk9dOworICAgICAg
ICB9CisKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTI4OSwxMCArMTI4OCwxMCBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRIYXNWaWRlb0NvbnRlbnRMYXll
cihib29sIHZhbHVlKQogICAgICAgICBmaW5hbGl6ZVNldHVwKCk7CiAgICAgaWYgKCFtX2hhc1Zp
ZGVvQ29udGVudExheWVyICYmIG1fY2xlYW51cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIp
CiAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuKCk7Ci0gICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVu
dExheWVyICYmIG1fcmV0dXJuVG9TdGFuZGJ5TmVlZHNSZXR1cm5WaWRlb0NvbnRlbnRMYXllcikK
LSAgICAgICAgcmV0dXJuVG9TdGFuZGJ5KCk7Ci0gICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExh
eWVyICYmIG1fZmluYWxpemVTZXR1cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIpCisgICAg
aWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZmluYWxpemVTZXR1cE5lZWRzUmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIgJiYgIW1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkpCiAgICAg
ICAgIGZpbmFsaXplU2V0dXAoKTsKKyAgICBpZiAoIW1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYg
bV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSkKKyAgICAgICAgcmV0dXJuVG9TdGFuZGJ5KCk7
CiAgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZXhpdEZ1bGxzY3JlZW5OZWVk
c1JldHVybkNvbnRlbnRMYXllcikKICAgICAgICAgZG9FeGl0RnVsbHNjcmVlbigpOwogfQpAQCAt
MTMxOSw5ICsxMzE4LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0
SW5saW5lUmVjdChjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0LCBib28KIAogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9TZXR1cCgpCiB7Ci0gICAgTW9kZSBjaGFuZ2VzIHsg
bV9jdXJyZW50TW9kZS5tb2RlKCkgXiBtX3RhcmdldE1vZGUubW9kZSgpIH07Ci0KLSAgICBpZiAo
bV9jdXJyZW50TW9kZS5oYXNWaWRlbygpICYmIG1fdGFyZ2V0TW9kZS5oYXNWaWRlbygpKSB7Cisg
ICAgaWYgKChtX2N1cnJlbnRNb2RlLmhhc1ZpZGVvKCkgJiYgbV90YXJnZXRNb2RlLmhhc1ZpZGVv
KCkpKSB7CiAgICAgICAgIG1fc3RhbmRieSA9IG1fdGFyZ2V0U3RhbmRieTsKICAgICAgICAgZmlu
YWxpemVTZXR1cCgpOwogICAgICAgICByZXR1cm47CkBAIC0xNDA4LDYgKzE0MDUsMTQgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9TZXR1cCgpCiAgICAgZmluYWxpemVT
ZXR1cCgpOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJl
ZFRvUmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCkKK3sKKyAgICBpZiAoIW1fcmVzdG9yaW5nRnVs
bHNjcmVlblN0YW5kYnkpCisgICAgICAgIHJldHVybjsKKworICAgIGNsZWFyTW9kZShIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCB0cnVl
KTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmluYWxpemVTZXR1
cCgpCiB7CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSB7CkBAIC0xNDg0LDcgKzE0ODks
MTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9FbnRlckZ1bGxzY3Jl
ZW4oKQogICAgICAgICAgICAgc2l6ZSA9IEZsb2F0U2l6ZSh2aWRlb0ZyYW1lLnNpemUoKSk7CiAg
ICAgICAgIH0KICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEVudGVyRnVs
bHNjcmVlbihzaXplKTsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxz
ZTsKICAgICB9CisKKyAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNQaWN0dXJlSW5QaWN0dXJlKCkg
JiYgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCAmJiAhbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGlj
dHVyZUluUGljdHVyZVN0b3ApCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEVu
dGVyUGljdHVyZUluUGljdHVyZSgpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKCkKQEAgLTE1MDksNyArMTUxOCw3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRXhpdEZ1bGxzY3JlZW4oKQogCiAgICAgaWYg
KG1fY3VycmVudE1vZGUuaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSkgewogICAgICAgICBtX2V4aXRGdWxsc2NyZWVuTmVl
ZHNFeGl0UGljdHVyZUluUGljdHVyZSA9IHRydWU7Ci0gICAgICAgIG1fc2hvdWxkUmV0dXJuVG9G
dWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7CisgICAgICAgIG1fc2hvdWxkUmV0dXJu
VG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogICAgICAg
ICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgc3RvcFBpY3R1cmVJblBpY3R1cmVdOwogICAgICAgICByZXR1cm47CkBAIC0xNTM4LDcgKzE1
NDcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVl
bkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yKgogCiAgICAgTE9HKEZ1bGxzY3JlZW4sICJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkRXhpdEZ1bGxzY3JlZW4oJXApIC0gJWQi
LCB0aGlzLCBzdWNjZXNzKTsKIAotICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7CisgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkLCBmYWxzZSk7CiAKICAgICBp
ZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0
dXJlSW5QaWN0dXJlKSkgewogICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CkBAIC0x
NTY0LDggKzE1NzMsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50
ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IKICAgICAgICAgV1RGTG9n
QWx3YXlzKCItW0FWUGxheWVyVmlld0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuQW5pbWF0ZWQ6
Y29tcGxldGlvbkhhbmRsZXI6XSBmYWlsZWQgd2l0aCBlcnJvciAlcyIsIFtbZXJyb3IgbG9jYWxp
emVkRGVzY3JpcHRpb25dIFVURjhTdHJpbmddKTsKIAogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlblN0YW5kYXJkIC0gbGFt
YmRhKCVwKSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpOwotICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNl
dFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOworICAgIGlmICghbV9zdGFuZGJ5KSB7CisgICAg
ICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQsICFtX2VudGVyRnVsbHNjcmVlbk5lZWRzRW50ZXJGdWxsc2NyZWVuKTsKKyAgICAgICAg
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107Cisg
ICAgfSBlbHNlCisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJh
Y2tDb250cm9sczpOT107CiAKICAgICBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5Q
aWN0dXJlU3RvcCA9IGZhbHNlOwogCkBAIC0xNTc1LDE2ICsxNTg3LDEyIEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNj
ZXNzLCBOU0Vycm9yCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVy
blRvU3RhbmRieSgpCiB7Ci0gICAgaWYgKG1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9mdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKLSAgICAgICAgbV9yZXR1cm5Ub1N0YW5kYnlOZWVkc1Jl
dHVyblZpZGVvQ29udGVudExheWVyID0gdHJ1ZTsKLSAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXItPnJldHVyblZpZGVvQ29udGVudExheWVyKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBtX3JldHVyblRvU3RhbmRieU5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIg
PSBmYWxzZTsKLQorICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkgPSBmYWxzZTsKICAg
ICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVy
IHZpZXddIHNldEhpZGRlbjpZRVNdOworCisgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyKQorICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkU2V0dXBGdWxsc2Ny
ZWVuKCk7CiB9CiAKIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OndhdGNoZG9nVGltZXJGaXJlZCgpCkBAIC0xNTk1LDE0ICsxNjAzLDcg
QEAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6d2F0Y2hkb2dUaW1lckZpcmVkKCkKICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIg
dmlld10gc2V0SGlkZGVuOllFU107CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJGaXJlZCgpCi17Ci0gICAgTE9HKEZ1bGxz
Y3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c3RvcFBpY3R1cmVJblBpY3R1
cmVUaW1lckZpcmVkKCVwKSAtIG5vdCByZWFkeSB0byBzdG9wIHBpY3R1cmUtaW4tcGljdHVyZSBp
biAlZ3M7IGZvcmNpbmcgc3RvcCBwaWN0dXJlLWluLXBpY3R1cmUuIiwgdGhpcywgc3RvcFBpY3R1
cmVJblBpY3R1cmVUaW1lckludGVydmFsLnZhbHVlKCkpOwotICAgIG1fc3RvcFBpY3R1cmVJblBp
Y3R1cmVUaW1lci5zdG9wKCk7Ci0gICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOwotfQotCi12b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9k
ZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCkKIHsKICAgICBpZiAoKG1fY3VycmVudE1vZGUubW9k
ZSgpICYgbW9kZSkgPT0gbW9kZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTYxMCwxNyArMTYxMSwx
NyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZQogICAgIG1fY3VycmVudE1vZGUuc2V0TW9kZSht
b2RlKTsKICAgICAvLyBNb2RlOjptb2RlKCkgY2FuIGJlIDMgKFZpZGVvRnVsbHNjcmVlbk1vZGVT
dGFuZGFyZCB8IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKS4KICAgICAvLyBI
VE1MVmlkZW9FbGVtZW50IGRvZXMgbm90IGV4cGVjdCBzdWNoIGEgdmFsdWUgaW4gdGhlIGZ1bGxz
Y3JlZW5Nb2RlQ2hhbmdlZCgpIGNhbGxiYWNrLgotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGVsKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsICYmIHNob3VsZE5vdGlmeU1vZGVs
KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQo
bW9kZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFyTW9k
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCkK
IHsKICAgICBpZiAoKH5tX2N1cnJlbnRNb2RlLm1vZGUoKSAmIG1vZGUpID09IG1vZGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fY3VycmVudE1vZGUuY2xlYXJNb2RlKG1vZGUpOwotICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
ICYmIHNob3VsZE5vdGlmeU1vZGVsKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5m
dWxsc2NyZWVuTW9kZUNoYW5nZWQobV9jdXJyZW50TW9kZS5tb2RlKCkpOwogfQogCkBAIC0xNjI5
LDIzICsxNjMwLDYgQEAgYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aXNQbGF5
aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiAgICAgcmV0dXJuIGhhc01vZGUo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVy
ZUluUGljdHVyZSkgJiYgW3BsYXllckNvbnRyb2xsZXIoKSBpc1BsYXlpbmddOwogfQogCi12b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBp
Y3R1cmUoQk9PTCByZWFkeSkKLXsKLSAgICBpZiAobV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1
cmUgPT0gcmVhZHkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlID0gcmVhZHk7Ci0gICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJl
KSB7Ci0gICAgICAgIGlmIChtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuaXNBY3RpdmUoKSkg
ewotICAgICAgICAgICAgbV9zdG9wUGljdHVyZUluUGljdHVyZVRpbWVyLnN0b3AoKTsKLSAgICAg
ICAgICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVQaWN0dXJlSW5QaWN0dXJlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlcikKLSAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LT5mdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCk7Ci0gICAgfQotfQotCiBzdGF0aWMgT3B0
aW9uYWw8Ym9vbD4gaXNQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydGVkOwogCiB2b2lkIFdlYkNvcmU6
OnNldFN1cHBvcnRzUGljdHVyZUluUGljdHVyZShib29sIGlzU3VwcG9ydGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggODIzNzM4Nzg5YzFmODA2MWFkYjRiYzc3ZmFhNDcx
Njk3YzkyMDUwMy4uYzhjMDQ3ZjBjYjFmMWRiN2JkYjU2YzU5N2ZmM2E0NDdkZDYyODIwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMjgsOCArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgZmlu
YWw7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbCB7IH0KLSAg
ICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKKyAgICB2b2lkIGZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8gVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSBvdmVycmlkZTsK
QEAgLTM2MCw3ICszNTksNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgfSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKQordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCkKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICBXZWJUaHJlYWRSdW4o
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSAoKSBtdXRhYmxlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgKaW5kZXggYjIwMjhmYzI2YmYxY2ExYzk3MmJlNGNlODkwMTFjNjE2
ZDUxZTQyMi4uZmViMGY2NDJkOGEwZmNlNDhhNDMzYWIzYjM0NTBiY2EwZjkyZTFlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVu
KCkgZmluYWw7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsK
LSAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKIAogICAgIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAgIFJlZjxQbGF5YmFja1Nl
c3Npb25Nb2RlbENvbnRleHQ+IG1fcGxheWJhY2tTZXNzaW9uTW9kZWw7CkBAIC0xMjcsNyArMTI2
LDYgQEAgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50IDogcHVibGljIENh
bk1ha2VXZWFrUHRyPFZpZGVvRnVsbHNjcmVlbk0KIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSB7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYXNW
aWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29sIHZhbHVlKSA9IDA7CiB9OwogCkBA
IC0xNzIsNiArMTcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZENsaWVudEZvckNvbnRleHQo
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQ2xpZW50
Rm9yQ29udGV4dChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAKKyAgICB2b2lk
IGVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAg
dm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29sKTsKIAogICAgIC8v
IE1lc3NhZ2VzIGZyb20gVmlkZW9GdWxsc2NyZWVuTWFuYWdlcgpAQCAtMTgwLDggKzE3OSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRIYXNWaWRlbyhQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBzZXRWaWRl
b0RpbWVuc2lvbnMoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYpOwotICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyKTsKLSAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCk7CisgICAg
dm9pZCBleGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2Vi
Q29yZTo6SW50UmVjdCBmaW5hbFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIpOwogICAgIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5l
UmVjdCk7CiAgICAgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIpOwpAQCAtMjAxLDcgKzE5OSw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRWaWRlb0xheWVyR3Jhdml0eShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICAgICB2b2lkIGZ1bGxz
Y3JlZW5Nb2RlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lk
IGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
Zmllcik7Ci0gICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbW9ja1Bp
Y3R1cmVJblBpY3R1cmVXaW5kb3dTaXplIHsgRGVmYXVsdE1vY2tQaWN0dXJlSW5QaWN0dXJlV2lu
ZG93V2lkdGgsIERlZmF1bHRNb2NrUGljdHVyZUluUGljdHVyZVdpbmRvd0hlaWdodCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQxZjA2Y2M4ZThlMjUx
OTc5YjU1MmE0M2EzMTY0NGZkMTI5MmE0NDYuLjQ0MTJlYjg1MTRmMDcwNWU1ZmEyZjUxY2Y0NTc5
MmQ2YjFiZDllYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTI1LDggKzI1LDEwIEBAIG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eSB7CiAgICAgU2V0SGFzVmlkZW8oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCiAgICAgU2V0VmlkZW9EaW1lbnNpb25zKFdl
YktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3Jl
OjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKQogICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRChX
ZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViS2l0
OjpMYXllckhvc3RpbmdDb250ZXh0SUQgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGlu
aXRpYWxSZWN0LCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zLCBmbG9hdCBob3N0
aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1
cmUsIGJvb2wgc3RhbmRieSkKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBFbnRlckZ1
bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQpCi0gICAgRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorI2VuZGlmCisg
ICAgRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KSAtPiAoYm9vbCBzdWNjZXNz
KSBBc3luYwogICAgIFNldElubGluZVJlY3QoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2
aXNpYmxlKQogICAgIFNldEhhc1ZpZGVvQ29udGVudExheWVyKFdlYktpdDo6UGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIHZhbHVlKQogICAgIENsZWFudXBG
dWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDhjZmU4YzVkNzk3Mzg0ODg3OTI5YTYw
NzkxODQwNGE4NmNjZDgxYTMuLjMzZjU3MGU3NjU3ZDBlZmI1YmI3NTcyOTIzZmEwNTZkZmExMzQw
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI3NCwxMiArMjc0LDYgQEAgdm9pZCBW
aWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
CiAgICAgICAgIG1fbWFuYWdlci0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKG1fY29udGV4
dElkKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5X
aWxsUmV0dXJuVG9JbmxpbmUoKQotewotICAgIGlmIChtX21hbmFnZXIpCi0gICAgICAgIG1fbWFu
YWdlci0+ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShtX2NvbnRleHRJZCk7Ci19Ci0KIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5
QW5kQ29udGV4dFVJRChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRlU2hhcmlu
Z1BvbGljeSwgU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9tYW5h
Z2VyKQpAQCAtNjA3LDExICs2MDEsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmkKICAgICB9
CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbihQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJl
Y3QgZmluYWxSZWN0KQordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxs
c2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29y
ZTo6SW50UmVjdCBmaW5hbFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKG1fY29udGV4dE1hcC5jb250YWlucyhjb250
ZXh0SWQpKTsKLSAgICBpZiAoIW1fY29udGV4dE1hcC5jb250YWlucyhjb250ZXh0SWQpKQorICAg
IGlmICghbV9jb250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAjaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgSW50UmVjdCBmaW5hbFdpbmRvd1JlY3Q7CkBAIC02MjQsMTMg
KzYyMCwxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3Jl
ZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZQogI2Vsc2UKICAgICAgICAgZGlkRXhp
dEZ1bGxzY3JlZW4oY29udGV4dElkKTsKICNlbmRpZgorICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuZXhpdEZ1bGxzY3JlZW4oZmluYWxS
ZWN0KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5l
eGl0RnVsbHNjcmVlbihmaW5hbFJlY3QpKTsKICNlbHNlCi0gICAgZW5zdXJlSW50ZXJmYWNlKGNv
bnRleHRJZCkuZXhpdEZ1bGxzY3JlZW4oZmluYWxXaW5kb3dSZWN0LCBtX3BhZ2UtPnBsYXRmb3Jt
V2luZG93KCkpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGVuc3VyZUludGVyZmFjZShjb250ZXh0
SWQpLmV4aXRGdWxsc2NyZWVuKGZpbmFsV2luZG93UmVjdCwgbV9wYWdlLT5wbGF0Zm9ybVdpbmRv
dygpKSk7CiAjZW5kaWYKIH0KIApAQCAtNzAyLDYgKzY5OSw4IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpjbGVhbnVwRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0
dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBi
b29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkKIHsKKyAgICBtX3BhZ2Ut
PmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAjaWYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0OwogICAgIG1fcGFnZS0+cm9vdFZpZXdU
b1dpbmRvdyhpbmxpbmVSZWN0LCBpbmxpbmVXaW5kb3dSZWN0KTsKQEAgLTc0OSw3ICs3NDgsNyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmV0dXJuVmlkZW9Db250ZW50TGF5
ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dAogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZCkKIHsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OkRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKKyAgICBlbnRlckZ1bGxz
Y3JlZW4oY29udGV4dElkKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQpCkBAIC03ODIsNyArNzgxLDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmRpZENsZWFudXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGUKICAgICBt
b2RlbC0+c2V0TGF5ZXJIb3N0VmlldyhudWxscHRyKTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZENsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJ
ZCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgIGludGVyZmFjZS0+c2V0TW9kZShIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBmYWxzZSk7CiAgICAgcmVtb3Zl
Q2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwogfQogCkBAIC04MTEsMTUgKzgxMCw3IEBAIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIgY29udGV4dElkKQogewotICAgIG1fcGFnZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lKCk7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCk7Ci19Ci0KLXZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCkKLXsKLSAgICBib29sIGlzVmlld1Zpc2libGUgPSBtX3BhZ2UtPmlz
Vmlld1Zpc2libGUoKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OkZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoY29udGV4dElkLCBpc1ZpZXdW
aXNpYmxlKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoY29udGV4dElkLCBtX3BhZ2UtPmlzVmll
d1Zpc2libGUoKSkpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVySU9TLm1tCmluZGV4IDViNGEyNjBjOGE2MDI1MTJlZjNhMzljYWE0MTRiNzY3
OWE1YjQ3MGYuLmE5ZTZlZGMwOWU4MzlmZDg0ZjY1ZjYyMzliNGJiMDcyOTM5NDg1OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQpAQCAtNDI5LDcg
KzQyOSw2IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24g
PSAwLjI7CiAKIEBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAoVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KQogLSAodm9pZClkaWRFbnRlclBpY3R1cmVJblBp
Y3R1cmU7Ci0tICh2b2lkKXByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlOwogLSAodm9pZClk
aWRFeGl0UGljdHVyZUluUGljdHVyZTsKIEBlbmQKIApAQCAtNDM5LDExICs0MzgsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqcGFy
ZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBmdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbAotICAgIHsKLSAgICAgICAgW21fcGFyZW50IHBy
ZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9Ci0KICAgICB2b2lkIGhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlKGJvb2wgdmFsdWUpIGZpbmFsCiAgICAgewogICAg
ICAgICBpZiAodmFsdWUpCkBAIC00NzUsNyArNDY5LDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5Q
dHI8V0tGdWxsU2NyZWVuSW50ZXJhY3RpdmVUcmFuc2l0aW9uPiBfaW50ZXJhY3RpdmVEaXNtaXNz
VHJhbnNpdGlvbkNvb3JkaW5hdG9yOwogCiAgICAgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
clZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCBfdmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Q2xpZW50OwotICAgIEJPT0wgX2luUGljdHVyZUluUGljdHVyZTsKKyAgICBCT09MIF9z
aG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZTsKICAgICBCT09MIF9l
bnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlOwogICAgIEJPT0wgX3JldHVy
blRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlOwogCkBAIC02OTcsMTMgKzY5MSwxMiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRl
cyhmYWxzZSk7CiAKICAgICAgICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
ID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAgICAgICAgICAgIEFTU0VS
VCh2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGllbnQoKSA9PSBudWxscHRyKTsKICAgICAgICAg
ICAgICAgICB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5zZXRDbGllbnQoJl92aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlDbGllbnQpOwotICAgICAgICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7Ci0gICAgICAgICAg
ICAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSkgeworCisgICAgICAgICAgICAgICAg
aWYgKGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6
IG51bGxwdHIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKF9yZXR1cm5Ub0Z1bGxzY3JlZW5G
cm9tUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKFlFUyk7Ci0gICAg
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9pblBpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+cHJlcGFyZWRUb1Jlc3Rv
cmVGdWxsc2NyZWVuU3RhbmRieSgpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UtPmluUGljdHVyZUluUGljdHVyZSgpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoYXV0byogbW9kZWwgPSB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2Ut
PnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
ZW50ZXJGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVyZSA9IFlFUzsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtb2RlbC0+cmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwpAQCAtNzI3
LDYgKzcyMCwxMCBAQCBwcml2YXRlOgogICAgIGlmIChfZnVsbFNjcmVlblN0YXRlICE9IFdlYktp
dDo6Tm90SW5GdWxsU2NyZWVuKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBTd2l0Y2ggdGhl
IGFjdGl2ZSB0YWIgaWYgbmVlZGVkCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmll
dyBfcGFnZV0uZ2V0KCkpCisgICAgICAgIHBhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSgpOworCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAgICAgICAg
IG1hbmFnZXItPnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
NzU5LDYgKzc1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgX2Z1
bGxTY3JlZW5TdGF0ZSA9IFdlYktpdDo6V2FpdGluZ1RvRXhpdEZ1bGxTY3JlZW47CisgICAgX2V4
aXRpbmdGdWxsU2NyZWVuID0gWUVTOwogCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9t
YW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4odHJ1ZSk7
CkBAIC04MjksMTIgKzgyNyw4IEBAIHByaXZhdGU6CiAgICAgICAgIG1hbmFnZXItPmRpZEV4aXRG
dWxsU2NyZWVuKCk7CiAgICAgfQogCi0gICAgaWYgKCFfaW5QaWN0dXJlSW5QaWN0dXJlKSB7Ci0g
ICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxs
c2NyZWVuTWFuYWdlcikgewotICAgICAgICAgICAgQVNTRVJUKHZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXItPmNsaWVudCgpID09ICZfdmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50IHx8IHZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09IG51bGxwdHIpOwotICAgICAgICAgICAg
dmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+c2V0Q2xpZW50KG51bGxwdHIpOwotICAgICAgICB9Ci0g
ICAgfQorICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHNlbGYuX3ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIgPyBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01h
bmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgX3Nob3VsZFJldHVyblRvRnVsbHNjcmVl
bkZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlICYmIHZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZS0+aW5QaWN0dXJlSW5QaWN0dXJlKCk7CiAKICAgICBbX3dpbmRv
dyBzZXRIaWRkZW46WUVTXTsKICAgICBfd2luZG93ID0gbmlsOwpAQCAtODYyLDcgKzg1Niw4IEBA
IHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9KTsKIAotICAgIGlmIChhdXRvIHBhZ2UgPSBbc2Vs
Zi5fd2ViVmlldyBfcGFnZV0pCisgICAgYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdl
XS5nZXQoKTsKKyAgICBpZiAocGFnZSAmJiBwYWdlLT5pc1ZpZXdGb2N1c2VkKCkpCiAgICAgICAg
IHBhZ2UtPmZvcmNlUmVwYWludChfcmVwYWludENhbGxiYWNrLmNvcHlSZWYoKSk7CiAgICAgZWxz
ZQogICAgICAgICBfcmVwYWludENhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKQEAgLTkwMiwz
OSArODk3LDMwIEBAIHByaXZhdGU6CiAKIC0gKHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJl
CiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IFlFUzsKLSAgICBbc2VsZiByZXF1ZXN0RXhp
dEZ1bGxTY3JlZW5dOwotfQotCi0tICh2b2lkKXByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJl
Ci17Ci0gICAgaWYgKF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSBz
ZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOwotCi0gICAgaWYgKCF2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKE5PKTsKLSAgICBf
cmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUgPSBZRVM7Ci0KLSAgICBpZiAo
IV9leGl0aW5nRnVsbFNjcmVlbikKLSAgICAgICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVl
bl07Ci0gICAgZWxzZQotICAgICAgICBfZW50ZXJSZXF1ZXN0ZWQgPSBZRVM7CisgICAgX3Nob3Vs
ZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0gWUVTOworICAgIGlmIChf
ZnVsbFNjcmVlblN0YXRlID09IFdlYktpdDo6SW5GdWxsU2NyZWVuKQorICAgICAgICBbc2VsZiBy
ZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwogfQogCiAtICh2b2lkKWRpZEV4aXRQaWN0dXJlSW5QaWN0
dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IE5POwotICAgIF9lbnRlckZ1bGxzY3Jl
ZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlID0gTk87Ci0gICAgaWYgKCFbc2VsZiBpc0Z1bGxT
Y3JlZW5dKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gc2Vs
Zi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAgICAgICAgQVNTRVJUKHZpZGVvRnVs
bHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Q2xpZW50KTsKLSAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPnNldENsaWVudChu
dWxscHRyKTsKKyAgICBpZiAoIV9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0
dXJlICYmIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkgewor
ICAgICAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSBzZWxmLl92aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyID8gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5h
Z2VySW50ZXJmYWNlKCkgOiBudWxscHRyOworICAgICAgICBpZiAodmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+cmVzdG9yaW5nRnVsbHNjcmVlblN0
YW5kYnkoKSkgeworICAgICAgICAgICAgaWYgKCFfZXhpdGluZ0Z1bGxTY3JlZW4pIHsKKyAgICAg
ICAgICAgICAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSA9PSBXZWJLaXQ6OkluRnVsbFNjcmVlbikK
KyAgICAgICAgICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5wcmVwYXJlZFRv
UmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBbc2VsZiByZXF1ZXN0RW50ZXJGdWxsU2NyZWVuXTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIF9lbnRlclJlcXVlc3RlZCA9IFlFUzsKKworICAgICAg
ICAgICAgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0gWUVTOworICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorCisgICAgX2VudGVyRnVsbHNjcmVl
bk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmUgPSBOTzsKIH0KIAogI3ByYWdtYSBtYXJrIC0KQEAg
LTEwMDEsOSArOTg3LDExIEBAIHByaXZhdGU6CiAKIC0gKHZvaWQpX2V4aXRGdWxsc2NyZWVuSW1t
ZWRpYXRlbHkKIHsKLSAgICBpZiAoIVtzZWxmIGlzRnVsbFNjcmVlbl0pCisgICAgaWYgKF9mdWxs
U2NyZWVuU3RhdGUgPT0gV2ViS2l0OjpOb3RJbkZ1bGxTY3JlZW4pCiAgICAgICAgIHJldHVybjsK
IAorICAgIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSA9IGZh
bHNlOworCiAgICAgYXV0byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXI7CiAgICAgaWYgKG1hbmFn
ZXIpCiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5tbQppbmRleCA0NGYwNzcxZTY4OTM5M2NkMWQwMmFmNTI3ZTgyODAzNGMyM2I4YWIx
Li40YTA2OWNlOGIzYjQ4OWMwYmNjNTA1ZDljNTEwZmE1MDE0YmQyM2NlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5tbQpAQCAtNjQsMTAgKzY0LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFyZW50
KFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVu
dDsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkg
ZmluYWwKLSAgICB7Ci0gICAgfQotCiAgICAgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVy
ZURpZENoYW5nZShib29sIHZhbHVlKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKHZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBkMDJlZjgyM2VmZTI2OTI1MmQ4YzFiNDM1NTUxZmI3
MzEzMDU0ODQ3Li5mZWRjM2RiMTBhZDc3M2JkNTUzNjMyNmZhYjFjMTc0MDg1Y2IxNmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAwOSw5ICsxMDA5LDkgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1l
bnQmIHZpZGUKICAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZp
ZGVvRWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50KTsKKyAgICBtX3BhZ2UudmlkZW9G
dWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlk
ZW9FbGVtZW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQm
IG1lZGlhRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjNmY4YjlkZTZhNzBlZjIzN2Qx
ZjQ4Y2VjYjQwMTEzNTc3NTUyOTllLi4xNzFmYTYzMzNkY2UzMjNjMDBjNzhjZWJkZTI3M2YwMGU2
YzkwZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNzUsNyArMjc1LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGZpbmFsOwogICAgIHZv
aWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAg
dm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwotICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CisgICAg
dm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBbXShib29s
KSB7IH0pIGZpbmFsOwogICAgIHZvaWQgc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50JikgZmluYWw7CiAgICAgdm9pZCBjbGVhclBsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyKCkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdp
bmVDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBiMWQ5ZGI4YTFmMzlkZDBhZGRj
OTQyMDNiMmZlM2M3MDY3ZmY5OTFiLi5kNGQxOTIzNDYxNjUyMGUwY2E0MmVkZDdiMTBjNmNlMjRj
ZDU0YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1D
QUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CkBAIC0xMDMsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKiBtX21hbmFnZXI7CiAgICAgUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIgbV9jb250ZXh0SWQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+
IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKLSAgICBBbmltYXRpb25UeXBlIG1fYW5pbWF0aW9uVHlw
ZSB7IGZhbHNlIH07CisgICAgQW5pbWF0aW9uVHlwZSBtX2FuaW1hdGlvblR5cGUgeyBBbmltYXRp
b25UeXBlOjpOb25lIH07CiAgICAgYm9vbCBtX3RhcmdldElzRnVsbHNjcmVlbiB7IGZhbHNlIH07
CiAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
IG1fZnVsbHNjcmVlbk1vZGUgeyBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGVOb25lIH07CiAgICAgYm9vbCBtX2Z1bGxzY3JlZW5TdGFuZGJ5IHsgZmFs
c2UgfTsKQEAgLTEyMyw3ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVv
RnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkg
Y29uc3Q7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpOwotICAgIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7CisgICAg
dm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBbXShib29s
KSB7IH0pOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRp
b24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAKIHByb3RlY3RlZDoKQEAgLTE0OSw3ICsxNTAs
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVjdChQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50
TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOworI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKKyNlbmRpZgogICAgIHZvaWQgd2lsbEV4aXRG
dWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGRp
ZEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2
b2lkIGRpZEVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwg
T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPik7CkBAIC0xNTcsNyArMTYwLDcgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBjb25zdCBXVEY6Ok1h
Y2hTZW5kUmlnaHQmKTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgdW5zaWduZWQgZ3Jhdml0eSk7CiAgICAgdm9pZCBm
dWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7Ci0gICAg
dm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2libGUpOworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGFn
ZVZpc2libGUpOwogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRV
SUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJREFzeW5j
UmVwbHkmJik7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluCmluZGV4IDVkNzg5ODdhMmMwYmI5OGEwMzQ0OGQ1YTY1MGIyNjgwZmEyMWUwOGQu
LmJkN2JiYTU3MjFkZDE0MmJhYzU0MmJjODkxZDc1YzJiZTRiMTlhYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw5IEBAIG1lc3NhZ2VzIC0+IFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KFdlYktpdDo6
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAgIFJlcXVlc3RW
aWRlb0NvbnRlbnRMYXllcihXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZCkKICAgICBSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihXZWJLaXQ6OlBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKKyNpZiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBEaWRTZXR1cEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCisjZW5kaWYKICAgICBXaWxsRXhpdEZ1bGxzY3JlZW4o
V2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAg
RGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNp
emU+IHNpemUpCkBAIC0zNCw3ICszNiw3IEBAIG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIgewogICAgIFNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJLaXQ6OlBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5k
cywgTWFjaFNlbmRSaWdodCBtYWNoU2VuZFJpZ2h0KQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5
RW51bShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
dW5zaWduZWQgZ3Jhdml0eSkKICAgICBGdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQot
ICAgIEZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJsZSkKKyAgICBGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJsZSkKICAgICBSZXF1ZXN0Um91dGVT
aGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQpIEFz
eW5jCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggZjdmYTc1OWU5ZWViMWI2Y2JkMTky
ZDY5MDY0ZjY2N2U0OGJhNWNkMC4uOGNlZThmOGRiM2ViZmQzN2YwMWVlZjdhNWY0ZmM0M2E1NGVk
MjFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI1Nyw3ICsyNTcsMTEgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1M
VmlkZW9FbGVtZW4KICAgICBhdXRvIHZpZGVvUmVjdCA9IGlubGluZVZpZGVvRnJhbWUodmlkZW9F
bGVtZW50KTsKICAgICBGbG9hdFJlY3QgdmlkZW9MYXllckZyYW1lID0gRmxvYXRSZWN0KDAsIDAs
IHZpZGVvUmVjdC53aWR0aCgpLCB2aWRlb1JlY3QuaGVpZ2h0KCkpOwogCi0gICAgaW50ZXJmYWNl
LT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1ZSk7CisgICAgaWYgKG1vZGUgIT0gSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSkKKyAgICAgICAgaW50ZXJmYWNl
LT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1ZSk7CisgICAgZWxzZQorICAgICAgICBpbnRlcmZh
Y2UtPnNldFRhcmdldElzRnVsbHNjcmVlbihmYWxzZSk7CisKICAgICBpbnRlcmZhY2UtPnNldEZ1
bGxzY3JlZW5Nb2RlKG1vZGUpOwogICAgIGludGVyZmFjZS0+c2V0RnVsbHNjcmVlblN0YW5kYnko
c3RhbmRieSk7CiAgICAgbW9kZWwtPnNldFZpZGVvRWxlbWVudCgmdmlkZW9FbGVtZW50KTsKQEAg
LTI4OCw3ICsyOTIsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbgogICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxzY3JlZW5X
aXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+Y29udGV4
dElEKCksIHZpZGVvUmVjdCwgRmxvYXRTaXplKHZpZGVvRWxlbWVudC52aWRlb1dpZHRoKCksIHZp
ZGVvRWxlbWVudC52aWRlb0hlaWdodCgpKSwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBp
bnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5k
YnkpKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVu
dCkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTE9H
KEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50KCVwKSIsIHRoaXMpOwogICAgIEFTU0VSVChtX3BhZ2UpOwpAQCAtMjk2
LDEyICszMDAsMjAgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWQKIAogICAgIGF1dG8gY29udGV4
dElkID0gbV92aWRlb0VsZW1lbnRzLmdldCgmdmlkZW9FbGVtZW50KTsKICAgICBhdXRvJiBpbnRl
cmZhY2UgPSBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKTsKLSAgICBpbnRlcmZhY2Uuc2V0VGFy
Z2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKICAgICBpZiAoaW50ZXJmYWNlLmFuaW1hdGlvblN0YXRl
KCkgIT0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6QW5pbWF0aW9uVHlwZTo6Tm9u
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50ZXJmYWNlLnNldEFuaW1hdGlvblN0YXRlKFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5cGU6OkZyb21GdWxsc2Ny
ZWVuKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkLCBpbmxpbmVWaWRlb0ZyYW1lKHZpZGVvRWxl
bWVudCkpKTsKKyAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNjcmVlbihjb250ZXh0SWQsIGlubGluZVZp
ZGVvRnJhbWUodmlkZW9FbGVtZW50KSksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlz
KSwgdGhpcywgY29udGV4dElkLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvIHN1Y2Nlc3MpIG11dGFibGUgeworICAgICAgICBpZiAoIXN1Y2Nlc3Mp
IHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8mIGludGVyZmFjZSA9IGVuc3VyZUludGVy
ZmFjZShjb250ZXh0SWQpOworICAgICAgICBpbnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVu
KGZhbHNlKTsKKyAgICAgICAgaW50ZXJmYWNlLnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgfSk7CiB9CiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRp
b24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdGFyZ2V0TW9kZSkKQEAgLTM4
OSwxOSArNDAxLDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJuVmlkZW9D
b250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50CiAgICAgfSk7CiB9CiAKKyNp
ZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
U2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJ
ZCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNl
dHVwRnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElkKTsKIAogICAgIEFTU0VSVCht
X3BhZ2UpOwogICAgIGF1dG8gW21vZGVsLCBpbnRlcmZhY2VdID0gZW5zdXJlTW9kZWxBbmRJbnRl
cmZhY2UoY29udGV4dElkKTsKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZGlzcGF0
Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRo
aXMtPm1fcGFnZSkKLSAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKSk7Ci0gICAgfSk7
Ci0jZWxzZQogICAgIENBTGF5ZXIqIHZpZGVvTGF5ZXIgPSBpbnRlcmZhY2UtPmxheWVySG9zdGlu
Z0NvbnRleHQoKS0+cm9vdExheWVyKCk7CiAKICAgICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlz
LCBjb250ZXh0SWRdICgpIG11dGFibGUgewpAQCAtNDEwLDggKzQxNiw4IEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyCiAgICAgICAgICAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKICAg
ICAgICAgfSk7CiAgICAgfSk7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQpCiB7CkBAIC00NDUsMTMgKzQ1MSwxMyBAQCB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllcgogCiAgICAgdmlkZW9FbGVtZW50LT5kaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1
cmVJblBpY3R1cmUoc2l6ZS52YWx1ZU9yKFdlYkNvcmU6OkZsb2F0U2l6ZSgpKSk7CiAKLSAgICBp
ZiAoaW50ZXJmYWNlLT50YXJnZXRJc0Z1bGxzY3JlZW4oKSkKKyAgICBpZiAoaW50ZXJmYWNlLT50
YXJnZXRJc0Z1bGxzY3JlZW4oKSB8fCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5TdGFuZGJ5KCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIGV4aXQgZnVsbHNjcmVlbiBub3cgaWYgaXQgd2FzIHBy
ZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmltYXRpb24uCiAgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KHRoaXMpLCB2aWRlb0VsZW1lbnRdIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFn
ZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5leGl0
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQsIFtdKGJvb2wpIHsg
fSk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw3ICs0NzUsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7
CiAgICAgfSk7CiAjZWxzZQotICAgIG1vZGVsLT53YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVu
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2Us
IG1vZGVsXSAoKSBtdXRhYmxlIHsKKyAgICBtb2RlbC0+d2FpdEZvclByZXBhcmVkRm9ySW5saW5l
VGhlbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNvbnRleHRJZCwgaW50ZXJm
YWNlLCBtb2RlbF0oKSBtdXRhYmxlIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCBjb250ZXh0SWQsIGludGVyZmFjZSwgbW9kZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAg
bW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVy
ZmFjZV0gewpAQCAtNTI2LDcgKzUzMiw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVuCiAgICAg
ZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRWaWRlb0xheWVyR3Jhdml0eSgoTWVkaWFQbGF5ZXJF
bnVtczo6VmlkZW9HcmF2aXR5KWdyYXZpdHkpOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCit2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJsZSkKIHsKICAg
ICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBiZjI5
YmVjZTc1NWU2ZjU1MWZjM2NjZjQ3NzJkNzZkMDU2NTYyOTY4Li4zN2M4NjI2NjA5YTFlNjJjZmE3
N2VhNmY4NDkyNzU1OWViYjRhMDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjA1LDcgKzIwNSw3
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIHZv
aWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAg
dm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwotICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CisgICAg
dm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBbXShib29s
KSB7IH0pIGZpbmFsOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRB
bmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CiAjZW5kaWYKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCmluZGV4IGUxMTgyYmQ0ZDU5NDBmMzUxYjc2ZjhjZjA0MThhN2RlZTM5
YzI5MTEuLjZmZDdhMjY1MzIxNTVjOWM4ZDU3NTM2NTUxNGU0ZjRhMWE4Y2I4ZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KQEAgLTk5MywxNCArOTkzLDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRl
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0Vs
ZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgaWYgKG1fbW9ja1ZpZGVv
UHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCiAgICAgICAgIHZpZGVvRWxlbWVudC5kaWRTdG9wQmVp
bmdGdWxsc2NyZWVuRWxlbWVudCgpOwogICAgIGVsc2UKICAgICAgICAgW21fd2ViVmlldyBfZXhp
dFZpZGVvRnVsbHNjcmVlbl07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUyAgICAKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7
CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0
aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB0YXJnZXRNb2RlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413389</attachid>
            <date>2020-11-05 20:15:44 -0800</date>
            <delta_ts>2020-11-05 20:43:47 -0800</delta_ts>
            <desc>Fix build failures on mac and windows</desc>
            <filename>bug-218419-20201105201543.patch</filename>
            <type>text/plain</type>
            <size>72959</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzNTZkYTE2YTc0NjNi
MmE2NWUyZjdhYmZkNGE2N2Y5ZWY5NDE2My4uNjg1ZmM5MzVlYjlkNTM4YmE3Zjc0OWI4MTBiMTBl
NGNhMjAxYzcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTExLTA1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVt
ZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxz
Y3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxs
c2NyZWVuU3RhbmRieSk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0aW9u
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxz
Y3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50
OjpmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6cHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmFpbGVkVG9TdGFydFBpY3R1
cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6Ondp
bGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21w
bGV0aW9uSGFuZGxlcik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmRvU2V0dXApOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVkVG9SZXN0b3JlRnVsbHNjcmVlblN0YW5kYnkpOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbkhhbmRsZXIpOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhh
bmRsZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRv
U3RhbmRieSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9k
ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYXJNb2RlKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzdG9wUGljdHVyZUluUGlj
dHVyZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRl
eHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTExLTA1
ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBDTTogU3dp
dGNoIHRvIEpTT04gcmVwb3J0IGZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0Njk4ZDUzN2FlOTJkNDc3YTAw
ODk5ZjM4OTQ0ZTUxOWYxM2EwN2JlLi5hM2YxMDE5YTdmMzIyYjBjYzYyZDJkNTE0MmM2ZGEwYzQ1
Zjk2YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTA1ICBQZW5nIExpdSAg
PHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVtZW50IGZ1
bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNl
dHVwRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldpbGxSZXR1
cm5Ub0lubGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5F
bnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgt
W1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuXSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX2NvbXBsZXRlZEV4aXRG
dWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlk
RW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciBfZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseV0pOgorICAgICAg
ICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHByZXBhcmVUb0V4aXRQaWN0dXJlSW5Q
aWN0dXJlXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAo
V2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4p
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAyMDIwLTEx
LTA1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNP
U10gUmVtb3ZlIG1kbnNyZXNwb25kZXIgYWNjZXNzIGZyb20gV2ViS2l0IHByb2Nlc3NlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGVkNzQ0ODgwMWZkNGU1ZGIxMTY4MWRjMjZlZTZk
MDEzMjcwMTAxOTEuLjIzOTkwN2Y3ZGJjNTUwNDU0ZTM2MjU3NDY0MWMyOWI3ODNjZDFkY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMS0wNSAg
UGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFBpUCByZXR1cm4gdG8g
ZWxlbWVudCBmdWxsIHNjcmVlbiBpcyBub3Qgc21vb3RoIG9uIHNvbWUgd2Vic2l0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODQxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisKIDIwMjAtMTEtMDQgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNb3ZlIHRoZSBpbnRl
cm5hbCBHUFUgcmVuZGVyaW5nIGZsYWdzIGZyb20gV2ViUGFnZSB0byBXZWJQcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyZWNjNzdiNzRhMDljZmEw
MjYwMTY1MDc0MzkxMjA4Njg2OTA1MjcwLi4xNGMzOTc3Y2IxZmM4YmU2Yzg3YTBmMmZkZTgyMmJk
MTMwNDBmMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTU5NzIsNyArNTk3Miw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4o
KQogCiAgICAgaWYgKGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpIHx8
IGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkgewogICAgICAgICBzZXRG
dWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7Ci0gICAgICAgIG1fY2hhbmdp
bmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0aGlzKSwgVmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpOwogICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKG9sZFZpZGVvRnVsbHNjcmVlbk1vZGUpKSB7CiAg
ICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpIHsKQEAgLTYwMzIsNyArNjAzMSw5
IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2Ny
ZWVuU3RhbmRieShib29sIHZhbHVlKQogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkp
CiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PigqdGhp
cyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpOwog
ICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVu
dD4oKnRoaXMpKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgp
LmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxl
bWVudD4oKnRoaXMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShhdXRv
IHN1Y2Nlc3MpIG11dGFibGUgeworICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5
ID0gIXN1Y2Nlc3M7CisgICAgICAgIH0pOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Ondp
bGxCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmNwcAppbmRleCAxNWRhYjFmNDY0YTFlNzMyMWY0NjU4M2JiOTZhOGRkMGFlYTFmMTI2
Li42ZDI3ZjM2YzE3ODEzNWM5YWRjMWViZmJlMjYzNWNkNTU5MDI2NDhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTQ2NywxMiArNDY3LDEzIEBAIEhUTUxW
aWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZSBIVE1MVmlkZW9FbGVtZW50Ojp0b1By
ZXNlbnRhdGlvbk1vZGUoSFRNCiB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNl
bnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgSU5GT19MT0co
TE9HSURFTlRJRklFUiwgIiwgbW9kZSA9ICIsICBtb2RlKTsKLSAgICBzZXRQcmVzZW50YXRpb25N
b2RlKG1vZGUpOworICAgIGlmICghaXNDaGFuZ2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKSkKKyAg
ICAgICAgc2V0UHJlc2VudGF0aW9uTW9kZShtb2RlKTsKIH0KIAogdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogewot
ICAgIGlmIChpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpIHx8IHRvUHJlc2VudGF0aW9u
TW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBtb2RlKQorICAgIGlmICh0b1ByZXNlbnRhdGlvbk1v
ZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gbW9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0
byB2aWRlb0Z1bGxzY3JlZW5Nb2RlID0gdG9GdWxsc2NyZWVuTW9kZShtb2RlKTsKQEAgLTQ4MSw3
ICs0ODIsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFByZXNlbnRhdGlvbk1vZGUoVmlk
ZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0g
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpIHsKICAgICAgICAgaWYgKGlzRnVsbHNjcmVlbigpKSB7
CiAgICAgICAgICAgICBpZiAodG9QcmVzZW50YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09
IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAg
ICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworICAgICAgICAgICAgICAgIG1f
ZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwogCiAgICAgICAgICAgICBleGl0RnVsbHNj
cmVlbigpOwogICAgICAgICB9CkBAIC00OTMsOSArNDk0LDkgQEAgdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgbV9pc0VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSA9IHRydWU7CisgICAgICAgIG1fZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1
ZTsKICAgICBlbHNlIGlmIChmdWxsc2NyZWVuTW9kZSgpID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQ
aWN0dXJlSW5QaWN0dXJlKQotICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0
cnVlOworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKIAogICAgIGVu
dGVyRnVsbHNjcmVlbih2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKIH0KQEAgLTUwNyw4ICs1MDgsOCBA
QCBhdXRvIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFByZXNlbnRhdGlvbk1vZGUoKSBjb25zdCAt
PiBWaWRlb1ByZXNlbnRhdGlvbk1vZGUKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRl
ckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogewot
ICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIG1faXNFbnRl
cmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUpIHsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsK
ICAgICAgICAgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlKGZhbHNlKTsKIAogI2lmIEVO
QUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpAQCAtNTIwLDggKzUyMSw4IEBAIHZvaWQgSFRN
TFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9pc0V4
aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGlj
dHVyZSA9IGZhbHNlOworICAgIGlmIChtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAg
ICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKICNpZiBFTkFCTEUoUElDVFVS
RV9JTl9QSUNUVVJFX0FQSSkKICAgICAgICAgaWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVy
KQogICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJl
SW5QaWN0dXJlKCk7CkBAIC01MzMsOCArNTM0LDggQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojpk
aWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29uc3QgRmxvYXRTaXplJiBzaXoK
IAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGlj
dHVyZSgpCiB7Ci0gICAgaWYgKG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSkgewotICAgICAg
ICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICBpZiAobV9leGl0aW5n
UGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0g
ZmFsc2U7CiAgICAgICAgIHNldENoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZShmYWxzZSk7CiAK
ICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKQEAgLTU2MCw3ICs1NjEsNyBAQCB2
b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0
UmVjdCYgZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKQotICAgIGlmICghbV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSAmJiAhbV9p
c0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlICYmIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQor
ICAgIGlmICghbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgJiYgIW1fZXhpdGluZ1BpY3R1cmVJ
blBpY3R1cmUgJiYgbV9waWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIpCiAgICAgICAgIG1fcGljdHVy
ZUluUGljdHVyZU9ic2VydmVyLT5waWN0dXJlSW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXpl
KGZyYW1lLnNpemUoKSkpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCmluZGV4IGVmZmYzZjY2ZTgxM2I3Nzg2OTgwY2FiY2EzNTEwYjEyMGRiNjA0MDIuLjE3
ZDY1MjE5MjA1MzdmY2RlOGMwNGI0Mjc4MTZkY2E3NzU0NTU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xNDIsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0IHsgMCB9OwogCiAjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIGJvb2wgbV9pc0VudGVyaW5nUGljdHVyZUluUGlj
dHVyZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNmRkZDliYzcwYzMwNjYyYzRmZGY3ZDY0NDAyOTIwNWNhMmExNGI5OS4uN2Fm
MTc4ZTk4NjY4ZGE5YzcxNDQ0NDUxMzI2MDY5NzQ4N2Q4MzVjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllcikg
eyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyID0gW10oYm9vbCkg
eyB9KSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRW
aWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFs
c2U7IH0gCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oCmluZGV4IGY0OTEyNDYyN2U2YWI1NzJl
Yzc5MmYwMjdjYzNmOWM4N2M2YjhhNzUuLjYzMTc5NzgxODFhOTg4ZDcyN2Y1YTUwNWZkOWRjMGMy
NmNmY2JkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaApAQCAtNDIsNyArNDIsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmdWxs
c2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKaW5kZXggOWY4
ZGQwODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0NzFiMDljYWRkYi4uMGZlZDc5NWFjYTlkOTg2ZmQx
OThmY2VjOGRmYjVjNTBhNWFkMmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCkBAIC04MSw3ICs4MSw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVudGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1cmUoKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRQ
aWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vZGVsRGVzdHJveWVkKCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IDUyODAzMDNlNDg4YWUyMzgwYTU1OWNmNWEx
MWVlNzFkMmE3ZTU5M2UuLjhiZjQyNGRmYWFjY2M4OTgwNjJlZjQ1YjcyZDc5MDNjZWYyMzNjODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0dXBGdWxsc2NyZWVuKFVJVmlldyYgdmlkZW9WaWV3LCBj
b25zdCBJbnRSZWN0JiBpbml0aWFsUmVjdCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lv
bnMsIFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjaywgYm9vbCBzdGFu
ZGJ5KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVudGVyRnVsbHNjcmVlbigpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50UmVjdCYgZmluYWxSZWN0
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3Qm
IGZpbmFsUmVjdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbigp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwpAQCAtODksNiArODksNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3Jl
ZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyKGJv
b2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SW5saW5lUmVjdChjb25zdCBJbnRSZWN0
JiwgYm9vbCB2aXNpYmxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXBhcmVkVG9SZXN0
b3JlRnVsbHNjcmVlblN0YW5kYnkoKTsKIAogICAgIGVudW0gY2xhc3MgRXhpdEZ1bGxTY3JlZW5S
ZWFzb24gewogICAgICAgICBEb25lQnV0dG9uVGFwcGVkLApAQCAtMTM2LDYgKzEzNyw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0
aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXli
YWNrRGlzYWJsZWQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGxpY2F0aW9u
RGlkQmVjb21lQWN0aXZlKCk7CisgICAgYm9vbCBpblBpY3R1cmVJblBpY3R1cmUoKSBjb25zdCB7
IHJldHVybiBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSB8fCBtX2N1cnJlbnRNb2RlLmhhc1Bp
Y3R1cmVJblBpY3R1cmUoKTsgfQorICAgIGJvb2wgcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnko
KSBjb25zdCB7IHJldHVybiBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5OyB9CiAKICAgICB2
b2lkIHdpbGxTdGFydFBpY3R1cmVJblBpY3R1cmUoKTsKICAgICB2b2lkIGRpZFN0YXJ0UGljdHVy
ZUluUGljdHVyZSgpOwpAQCAtMTQ2LDEwICsxNDksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGl0
RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICopOwogICAgIHZvaWQgZW50
ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKik7CiAgICAgYm9vbCBp
c1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUoQk9PTCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlKTsKLSAgICB2b2lkIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgc2hvdWxkTm90
aWZ5TW9kZWwpOworICAgIHZvaWQgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCk7CiAgICAgYm9vbCBoYXNN
b2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRNb2RlLmhhc01vZGUobW9kZSk7IH0KIAogICAgIFVJVmlld0Nv
bnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpOwpAQCAtMTY2LDcgKzE2OCw2IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJldHVyblRvU3RhbmRieSgpOwogICAgIHZvaWQgZG9FbnRl
ckZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIHdhdGNoZG9nVGltZXJGaXJlZCgpOwotICAgIHZvaWQg
c3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckZpcmVkKCk7CiAgICAgV2ViQVZQbGF5ZXJDb250cm9s
bGVyICpwbGF5ZXJDb250cm9sbGVyKCkgY29uc3Q7CiAKICAgICBSZWY8UGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQVZLaXQ+IG1fcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlOwpAQCAtMTg0LDE0ICsx
ODUsMTQgQEAgcHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckxheWVyVmlldz4g
bV9wbGF5ZXJMYXllclZpZXc7CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiBtX3ByZXBh
cmVUb0lubGluZUNhbGxiYWNrOwogICAgIFJ1bkxvb3A6OlRpbWVyPFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0PiBtX3dhdGNoZG9nVGltZXI7Ci0gICAgUnVuTG9vcDo6VGltZXI8VmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lcjsKICAg
ICBGbG9hdFJlY3QgbV9pbmxpbmVSZWN0OwogICAgIFJvdXRlU2hhcmluZ1BvbGljeSBtX3JvdXRl
U2hhcmluZ1BvbGljeSB7IFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdCB9OwogICAgIFN0cmlu
ZyBtX3JvdXRpbmdDb250ZXh0VUlEOwogICAgIGJvb2wgbV9hbGxvd3NQaWN0dXJlSW5QaWN0dXJl
UGxheWJhY2sgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0
b3BwaW5nUGlQIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVu
V2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Jlc3Rv
cmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5IHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9z
ZXR1cE5lZWRzSW5saW5lUmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2V4aXRGdWxsc2NyZWVu
TmVlZElubGluZVJlY3QgeyBmYWxzZSB9OwpAQCAtMjI0LDcgKzIyNSw2IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1fc2hvdWxkSWdub3JlQVZLaXRDYWxsYmFja0Fib3V0RXhpdEZ1bGxzY3JlZW5S
ZWFzb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07Ci0g
ICAgYm9vbCBtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSB7IHRydWUgfTsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlYWY2NzQ1N2VkOWE2OTdjOTljYTViZmExNzBk
M2MwNzk3ZTg5ZTM1Li5lMTRiYWZmNTY5NjQyOGMxNDQwODA2MTIyNDliMGRmZWJkODdiMjcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC04NSw3ICs4NSw2IEBAIHN0YXRpYyBjb25zdCBj
aGFyKiBib29sU3RyaW5nKGJvb2wgdmFsKQogI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBTZWNvbmRz
IGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgeyAxX3MgfTsKLXN0YXRpYyBjb25zdCBTZWNv
bmRzIHN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJJbnRlcnZhbCB7IDFfcyB9Owogc3RhdGljIGJv
b2wgaWdub3JlV2F0Y2hkb2dGb3JEZWJ1Z2dpbmcgPSBmYWxzZTsKIAogQGludGVyZmFjZSBBVlBs
YXllclZpZXdDb250cm9sbGVyIChEZXRhaWxzKQpAQCAtODIzLDcgKzgyMiw2IEBAIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdChQbGF5
YmFja1Nlc3Npb25JbnRlCiAgICAgOiBtX3BsYXliYWNrU2Vzc2lvbkludGVyZmFjZShwbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgLCBtX3BsYXllclZpZXdDb250cm9sbGVyRGVsZWdhdGUo
YWRvcHROUyhbW1dlYkFWUGxheWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
KQogICAgICwgbV93YXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3YXRjaGRvZ1RpbWVyRmlyZWQpCi0gICAgLCBtX3N0b3BQ
aWN0dXJlSW5QaWN0dXJlVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJGaXJlZCkKIHsKIH0K
IApAQCAtOTU1LDE5ICs5NTMsMjIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZW50ZXJGdWxsc2NyZWVuKCkKICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwogfQogCi12b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihjb25zdCBJbnRS
ZWN0JiBmaW5hbFJlY3QpCitib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0
RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpCiB7Ci0gICAgaWYgKG1fd2F0Y2hk
b2dUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3RvcCgpOworICAg
IG1fd2F0Y2hkb2dUaW1lci5zdG9wKCk7CiAKLSAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJblBp
Y3R1cmUpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIG1h
eSBhc2sgYSB2aWRlbyB0byBleGl0IHN0YW5kYnkgd2hpbGUgdGhlIHZpZGVvCisgICAgLy8gaXMg
ZW50ZXJpbmcgcGljdHVyZS1pbi1waWN0dXJlLiBXZSBuZWVkIHRvIGlnbm9yZSB0aGUgcmVxdWVz
dCBpbiB0aGF0IGNhc2UuCisgICAgaWYgKG1fc3RhbmRieSAmJiBtX2VudGVyaW5nUGljdHVyZUlu
UGljdHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV90YXJnZXRNb2RlID0gSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZTsKIAogICAgIHNldElu
bGluZVJlY3QoZmluYWxSZWN0LCB0cnVlKTsKICAgICBkb0V4aXRGdWxsc2NyZWVuKCk7CiAgICAg
bV9zaG91bGRJZ25vcmVBVktpdENhbGxiYWNrQWJvdXRFeGl0RnVsbHNjcmVlblJlYXNvbiA9IHRy
dWU7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQpAQCAtOTc1LDkgKzk3Niw2IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKICAgICBMT0co
RnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNj
cmVlbiglcCkiLCB0aGlzKTsKICAgICBtX3Nob3VsZElnbm9yZUFWS2l0Q2FsbGJhY2tBYm91dEV4
aXRGdWxsc2NyZWVuUmVhc29uID0gZmFsc2U7CiAKLSAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fY2xlYW51cE5lZWRzUmV0dXJuVmlk
ZW9Db250ZW50TGF5ZXIgPSB0cnVlOwogICAgIGlmIChtX2hhc1ZpZGVvQ29udGVudExheWVyICYm
IG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7CiAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyLT5yZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpOwpAQCAtMTAzNSw3ICsxMDMzLDkg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7CiAg
ICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG51bGxwdHI7CiAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIgPSBudWxscHRyOwotICAgIAorCisgICAgbV93YXRjaGRvZ1RpbWVyLnN0b3Ao
KTsKKyAgICBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogICAgIGNsZWFudXBG
dWxsc2NyZWVuKCk7CiB9CiAKQEAgLTEwOTQsMTEgKzEwOTQsOCBAQCBib29sIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGlj
dHVyZSgpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGlj
dHVyZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQog
ewogICAgIG1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAg
ICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKKyAgICBpZiAobV9mdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLSAgICAgICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0
dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1
bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKTsKLSAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTEy
MCwyOCArMTExNywyNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxs
U3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCVw
KSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSk7CisgICAgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCAhbV9lbnRlckZ1bGxz
Y3JlZW5OZWVkc0VudGVyUGljdHVyZUluUGljdHVyZSk7CiAgICAgW21fcGxheWVyVmlld0NvbnRy
b2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107CiAgICAgW21fdmlld0NvbnRyb2xs
ZXIgX3NldElnbm9yZUFwcFN1cHBvcnRlZE9yaWVudGF0aW9uczpOT107CiAKICAgICBpZiAobV9j
dXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkpIHsKLSAgICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1
bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBZRVM7CisgICAgICAgIG1fc2hvdWxkUmV0dXJuVG9G
dWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAgICAgICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CiAgICAgICAgIFtt
X3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6WUVTIGNvbXBsZXRp
b25IYW5kbGVyOltwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKEJPT0wg
c3VjY2VzcywgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgICAgIGV4aXRGdWxsc2NyZWVuSGFu
ZGxlcihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgIH1dOwogICAgIH0gZWxzZSB7CisgICAgICAg
IGlmIChtX3N0YW5kYnkpCisgICAgICAgICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldo
ZW5TdG9wcGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworCiAgICAgICAgIFttX3dpbmRvdyBz
ZXRIaWRkZW46WUVTXTsKICAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNl
dEhpZGRlbjpZRVNdOwogICAgIH0KIAotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQot
ICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUo
KTsKLQogICAgIGlmIChtX2VudGVyRnVsbHNjcmVlbk5lZWRzRW50ZXJQaWN0dXJlSW5QaWN0dXJl
KQogICAgICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwotCi0gICAgbV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTE1MywxMSArMTE0OCwxMCBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmYWlsZWRUb1N0YXJ0UGljdHVy
ZUluUGljdHVyZSgpCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVlbigpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkgewogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
LT5mYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgpOwotCi0gICAgaWYgKG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwpCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxs
c2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25l
KTsKKyAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxT
dG9wUGljdHVyZUluUGljdHVyZSgpCkBAIC0xMTY1LDcgKzExNTksNyBAQCB2b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogICAgIExP
RyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGlj
dHVyZUluUGljdHVyZSglcCkiLCB0aGlzKTsKIAogICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSB0cnVlOwotICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQ
ID0gZmFsc2U7CisgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaWN0
dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2Ny
ZWVuKCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApCiAg
ICAgICAgIHJldHVybjsKQEAgLTExODAsOCArMTE3NCwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUluUGljdHVyZSgpCiAgICAgbV90YXJnZXRN
b2RlLnNldFBpY3R1cmVJblBpY3R1cmUoZmFsc2UpOwogICAgIFttX3ZpZXdDb250cm9sbGVyIF9z
ZXRJZ25vcmVBcHBTdXBwb3J0ZWRPcmllbnRhdGlvbnM6WUVTXTsKIAorICAgIGlmIChtX3Jlc3Rv
cmluZ0Z1bGxzY3JlZW5TdGFuZGJ5KSB7CisgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSBmYWxzZTsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsK
KyAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCisgICAgICAgICAgICBtX3ZpZGVv
RnVsbHNjcmVlbk1vZGVsLT5kaWRFeGl0UGljdHVyZUluUGljdHVyZSgpOworCisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkgfHwg
bV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApIHsKLSAgICAgICAg
Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1
cmVJblBpY3R1cmUpOworICAgICAgICBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSwgIW1fZXhpdEZ1bGxzY3JlZW5OZWVk
c0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJ
blBpY3R1cmVTdG9wKTsKICAgICAgICAgW21fd2luZG93IG1ha2VLZXlXaW5kb3ddOwogICAgICAg
ICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93c1BsYXliYWNrQ29udHJvbHM6WUVTXTsK
IApAQCAtMTE5OCwxMSArMTIwMSw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghbV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUpIHsKLSAgICAgICAgaWYgKCFt
X3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fc3Rv
cFBpY3R1cmVJblBpY3R1cmVUaW1lci5zdGFydE9uZVNob3Qoc3RvcFBpY3R1cmVJblBpY3R1cmVU
aW1lckludGVydmFsKTsKLSAgICB9IGVsc2UKLSAgICAgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOworICAgIGNs
ZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJl
SW5QaWN0dXJlLCAhbV9leGl0RnVsbHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmUpOwog
CiAgICAgW21fcGxheWVyTGF5ZXJWaWV3IHNldEJhY2tncm91bmRDb2xvcjpjbGVhclVJQ29sb3Io
KV07CiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEJhY2tncm91bmRDb2xv
cjpjbGVhclVJQ29sb3IoKV07CkBAIC0xMjEyLDIwICsxMjExLDE0IEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKIAogICAgIGlm
IChtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVyZSkKICAgICAgICAgZG9F
eGl0RnVsbHNjcmVlbigpOwotICAgIGVsc2UgaWYgKG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUp
IHsKLSAgICAgICAgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwotCi0gICAgICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKLSAgICB9CiB9CiAKIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3Rv
cFdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKEJPT0wgcmVz
dG9yZWQpKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxl
ciglcCkiLCB0aGlzKTsKIAotICAgIGlmIChtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5T
dG9wcGluZ1BpUCkgewotICAgICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9w
cGluZ1BpUCA9IGZhbHNlOworICAgIGlmIChtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5T
dG9wcGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxz
Y3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAgICAgICAgIG1fcmVz
dG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wID0gdHJ1ZTsKIAogICAgICAg
ICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKQEAgLTEyMzYsNiArMTIyOSwxMiBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0
b3BXaXRoQ29tcGxldGlvbgogICAgICAgICAgICAgZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihzdWNj
ZXNzLCBlcnJvcik7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZXNzKTsKICAg
ICAgICAgfV07CisKKyAgICAgICAgaWYgKG1fc3RhbmRieSkgeworICAgICAgICAgICAgbV9yZXN0
b3JpbmdGdWxsc2NyZWVuU3RhbmRieSA9IHRydWU7CisgICAgICAgICAgICBbbV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBzZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2s6Tk9dOworICAgICAg
ICB9CisKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTI4OSwxMCArMTI4OCwxMCBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRIYXNWaWRlb0NvbnRlbnRMYXll
cihib29sIHZhbHVlKQogICAgICAgICBmaW5hbGl6ZVNldHVwKCk7CiAgICAgaWYgKCFtX2hhc1Zp
ZGVvQ29udGVudExheWVyICYmIG1fY2xlYW51cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIp
CiAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuKCk7Ci0gICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVu
dExheWVyICYmIG1fcmV0dXJuVG9TdGFuZGJ5TmVlZHNSZXR1cm5WaWRlb0NvbnRlbnRMYXllcikK
LSAgICAgICAgcmV0dXJuVG9TdGFuZGJ5KCk7Ci0gICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExh
eWVyICYmIG1fZmluYWxpemVTZXR1cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIpCisgICAg
aWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZmluYWxpemVTZXR1cE5lZWRzUmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIgJiYgIW1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkpCiAgICAg
ICAgIGZpbmFsaXplU2V0dXAoKTsKKyAgICBpZiAoIW1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYg
bV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSkKKyAgICAgICAgcmV0dXJuVG9TdGFuZGJ5KCk7
CiAgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZXhpdEZ1bGxzY3JlZW5OZWVk
c1JldHVybkNvbnRlbnRMYXllcikKICAgICAgICAgZG9FeGl0RnVsbHNjcmVlbigpOwogfQpAQCAt
MTMxOSw5ICsxMzE4LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0
SW5saW5lUmVjdChjb25zdCBJbnRSZWN0JiBpbmxpbmVSZWN0LCBib28KIAogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9TZXR1cCgpCiB7Ci0gICAgTW9kZSBjaGFuZ2VzIHsg
bV9jdXJyZW50TW9kZS5tb2RlKCkgXiBtX3RhcmdldE1vZGUubW9kZSgpIH07Ci0KLSAgICBpZiAo
bV9jdXJyZW50TW9kZS5oYXNWaWRlbygpICYmIG1fdGFyZ2V0TW9kZS5oYXNWaWRlbygpKSB7Cisg
ICAgaWYgKChtX2N1cnJlbnRNb2RlLmhhc1ZpZGVvKCkgJiYgbV90YXJnZXRNb2RlLmhhc1ZpZGVv
KCkpKSB7CiAgICAgICAgIG1fc3RhbmRieSA9IG1fdGFyZ2V0U3RhbmRieTsKICAgICAgICAgZmlu
YWxpemVTZXR1cCgpOwogICAgICAgICByZXR1cm47CkBAIC0xNDA4LDYgKzE0MDUsMTQgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9TZXR1cCgpCiAgICAgZmluYWxpemVT
ZXR1cCgpOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJl
ZFRvUmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCkKK3sKKyAgICBpZiAoIW1fcmVzdG9yaW5nRnVs
bHNjcmVlblN0YW5kYnkpCisgICAgICAgIHJldHVybjsKKworICAgIGNsZWFyTW9kZShIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCB0cnVl
KTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmluYWxpemVTZXR1
cCgpCiB7CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSB7CkBAIC0xNDg0LDcgKzE0ODks
MTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9FbnRlckZ1bGxzY3Jl
ZW4oKQogICAgICAgICAgICAgc2l6ZSA9IEZsb2F0U2l6ZSh2aWRlb0ZyYW1lLnNpemUoKSk7CiAg
ICAgICAgIH0KICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEVudGVyRnVs
bHNjcmVlbihzaXplKTsKKyAgICAgICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxz
ZTsKICAgICB9CisKKyAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNQaWN0dXJlSW5QaWN0dXJlKCkg
JiYgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCAmJiAhbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGlj
dHVyZUluUGljdHVyZVN0b3ApCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEVu
dGVyUGljdHVyZUluUGljdHVyZSgpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKCkKQEAgLTE1MDksNyArMTUxOCw3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRXhpdEZ1bGxzY3JlZW4oKQogCiAgICAgaWYg
KG1fY3VycmVudE1vZGUuaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSkgewogICAgICAgICBtX2V4aXRGdWxsc2NyZWVuTmVl
ZHNFeGl0UGljdHVyZUluUGljdHVyZSA9IHRydWU7Ci0gICAgICAgIG1fc2hvdWxkUmV0dXJuVG9G
dWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7CisgICAgICAgIG1fc2hvdWxkUmV0dXJu
VG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogICAgICAg
ICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgc3RvcFBpY3R1cmVJblBpY3R1cmVdOwogICAgICAgICByZXR1cm47CkBAIC0xNTM4LDcgKzE1
NDcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVl
bkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yKgogCiAgICAgTE9HKEZ1bGxzY3JlZW4sICJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkRXhpdEZ1bGxzY3JlZW4oJXApIC0gJWQi
LCB0aGlzLCBzdWNjZXNzKTsKIAotICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7CisgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkLCBmYWxzZSk7CiAKICAgICBp
ZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0
dXJlSW5QaWN0dXJlKSkgewogICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CkBAIC0x
NTY0LDggKzE1NzMsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50
ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IKICAgICAgICAgV1RGTG9n
QWx3YXlzKCItW0FWUGxheWVyVmlld0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuQW5pbWF0ZWQ6
Y29tcGxldGlvbkhhbmRsZXI6XSBmYWlsZWQgd2l0aCBlcnJvciAlcyIsIFtbZXJyb3IgbG9jYWxp
emVkRGVzY3JpcHRpb25dIFVURjhTdHJpbmddKTsKIAogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlblN0YW5kYXJkIC0gbGFt
YmRhKCVwKSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpOwotICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNl
dFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOworICAgIGlmICghbV9zdGFuZGJ5KSB7CisgICAg
ICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQsICFtX2VudGVyRnVsbHNjcmVlbk5lZWRzRW50ZXJGdWxsc2NyZWVuKTsKKyAgICAgICAg
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107Cisg
ICAgfSBlbHNlCisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJh
Y2tDb250cm9sczpOT107CiAKICAgICBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5Q
aWN0dXJlU3RvcCA9IGZhbHNlOwogCkBAIC0xNTc1LDE2ICsxNTg3LDEyIEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNj
ZXNzLCBOU0Vycm9yCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVy
blRvU3RhbmRieSgpCiB7Ci0gICAgaWYgKG1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9mdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKLSAgICAgICAgbV9yZXR1cm5Ub1N0YW5kYnlOZWVkc1Jl
dHVyblZpZGVvQ29udGVudExheWVyID0gdHJ1ZTsKLSAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXItPnJldHVyblZpZGVvQ29udGVudExheWVyKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBtX3JldHVyblRvU3RhbmRieU5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIg
PSBmYWxzZTsKLQorICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkgPSBmYWxzZTsKICAg
ICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVy
IHZpZXddIHNldEhpZGRlbjpZRVNdOworCisgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyKQorICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkU2V0dXBGdWxsc2Ny
ZWVuKCk7CiB9CiAKIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OndhdGNoZG9nVGltZXJGaXJlZCgpCkBAIC0xNTk1LDE0ICsxNjAzLDcg
QEAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6d2F0Y2hkb2dUaW1lckZpcmVkKCkKICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xsZXIg
dmlld10gc2V0SGlkZGVuOllFU107CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJGaXJlZCgpCi17Ci0gICAgTE9HKEZ1bGxz
Y3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c3RvcFBpY3R1cmVJblBpY3R1
cmVUaW1lckZpcmVkKCVwKSAtIG5vdCByZWFkeSB0byBzdG9wIHBpY3R1cmUtaW4tcGljdHVyZSBp
biAlZ3M7IGZvcmNpbmcgc3RvcCBwaWN0dXJlLWluLXBpY3R1cmUuIiwgdGhpcywgc3RvcFBpY3R1
cmVJblBpY3R1cmVUaW1lckludGVydmFsLnZhbHVlKCkpOwotICAgIG1fc3RvcFBpY3R1cmVJblBp
Y3R1cmVUaW1lci5zdG9wKCk7Ci0gICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOwotfQotCi12b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9k
ZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCkKIHsKICAgICBpZiAoKG1fY3VycmVudE1vZGUubW9k
ZSgpICYgbW9kZSkgPT0gbW9kZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTYxMCwxNyArMTYxMSwx
NyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZQogICAgIG1fY3VycmVudE1vZGUuc2V0TW9kZSht
b2RlKTsKICAgICAvLyBNb2RlOjptb2RlKCkgY2FuIGJlIDMgKFZpZGVvRnVsbHNjcmVlbk1vZGVT
dGFuZGFyZCB8IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKS4KICAgICAvLyBI
VE1MVmlkZW9FbGVtZW50IGRvZXMgbm90IGV4cGVjdCBzdWNoIGEgdmFsdWUgaW4gdGhlIGZ1bGxz
Y3JlZW5Nb2RlQ2hhbmdlZCgpIGNhbGxiYWNrLgotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGVsKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsICYmIHNob3VsZE5vdGlmeU1vZGVs
KQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQo
bW9kZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFyTW9k
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCkK
IHsKICAgICBpZiAoKH5tX2N1cnJlbnRNb2RlLm1vZGUoKSAmIG1vZGUpID09IG1vZGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fY3VycmVudE1vZGUuY2xlYXJNb2RlKG1vZGUpOwotICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
ICYmIHNob3VsZE5vdGlmeU1vZGVsKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5m
dWxsc2NyZWVuTW9kZUNoYW5nZWQobV9jdXJyZW50TW9kZS5tb2RlKCkpOwogfQogCkBAIC0xNjI5
LDIzICsxNjMwLDYgQEAgYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aXNQbGF5
aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiAgICAgcmV0dXJuIGhhc01vZGUo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVy
ZUluUGljdHVyZSkgJiYgW3BsYXllckNvbnRyb2xsZXIoKSBpc1BsYXlpbmddOwogfQogCi12b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBp
Y3R1cmUoQk9PTCByZWFkeSkKLXsKLSAgICBpZiAobV9yZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1
cmUgPT0gcmVhZHkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlID0gcmVhZHk7Ci0gICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJl
KSB7Ci0gICAgICAgIGlmIChtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuaXNBY3RpdmUoKSkg
ewotICAgICAgICAgICAgbV9zdG9wUGljdHVyZUluUGljdHVyZVRpbWVyLnN0b3AoKTsKLSAgICAg
ICAgICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVQaWN0dXJlSW5QaWN0dXJlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtX2Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlcikKLSAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVy
LT5mdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCk7Ci0gICAgfQotfQotCiBzdGF0aWMgT3B0
aW9uYWw8Ym9vbD4gaXNQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydGVkOwogCiB2b2lkIFdlYkNvcmU6
OnNldFN1cHBvcnRzUGljdHVyZUluUGljdHVyZShib29sIGlzU3VwcG9ydGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggODIzNzM4Nzg5YzFmODA2MWFkYjRiYzc3ZmFhNDcx
Njk3YzkyMDUwMy4uYzhjMDQ3ZjBjYjFmMWRiN2JkYjU2YzU5N2ZmM2E0NDdkZDYyODIwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xMjgsOCArMTI4LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigpIGZpbmFsOwogICAgIHZvaWQgZGlkRXhp
dEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgZmlu
YWw7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbCB7IH0KLSAg
ICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKKyAgICB2b2lkIGZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFsOwogCiAgICAgLy8gVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29sKSBvdmVycmlkZTsK
QEAgLTM2MCw3ICszNTksNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgfSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckNvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKQordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKCkKIHsKICAgICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICBXZWJUaHJlYWRSdW4o
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzXSAoKSBtdXRhYmxlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMuaAppbmRleCBkYjVkODYzMzcyY2IwZmY4NjAxOGRiYjI5MjYwMTBkZDNlMTM2
MDc3Li5hOGYxMWU4NWY4ZmJjM2ViNjkzMjY1NWMyZDVkYzMzM2M0YWRhMjc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZU1hYy5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0dXBGdWxsc2NyZWVuKE5TVmlldyYgbGF5ZXJIb3N0ZWRWaWV3LCBjb25zdCBJbnRS
ZWN0JiBpbml0aWFsUmVjdCwgTlNXaW5kb3cgKnBhcmVudFdpbmRvdywgSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmVQ
bGF5YmFjayk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFs
UmVjdCwgTlNXaW5kb3cgKnBhcmVudFdpbmRvdyk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBl
eGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QsIE5TV2luZG93ICpwYXJlbnRX
aW5kb3cpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5p
bWF0aW9uVG9Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwpAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAg
ICAgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25z
dCB7IHJldHVybiBtX21vZGU7IH0KICAgICBib29sIGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZSAmIG1v
ZGU7IH0KICAgICBib29sIGlzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSkgY29uc3QgeyByZXR1cm4gbV9tb2RlID09IG1vZGU7IH0KLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sKTsKICAgICB2b2lkIGNsZWFyTW9k
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCAzMGIxNmZjZTUzMWZlYWVmOTg4OWIxZjkxMWRm
N2U4ZGU0ZWNmYzZjLi5hYzQxMGJiNTM1NTNkOTY1YjlmZTcxZjUwMmVhZTcwNDY4NDhjYjhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTQwNSw3ICs0MDUsNyBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU1hYzo6c2V0VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIoVmlkZW9G
dWxsc2NyZQogICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyID0gbWFrZVdlYWtQdHIob2Jz
ZXJ2ZXIpOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0TW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29sKQogewogICAgIEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBuZXdNb2RlID0gbV9tb2RlIHwgbW9kZTsKICAgICBp
ZiAobV9tb2RlID09IG5ld01vZGUpCkBAIC00NzcsNyArNDc3LDcgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWM6OmVudGVyRnVsbHNjcmVlbigpCiAgICAgfQogfQogCi12b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50UmVjdCYg
ZmluYWxSZWN0LCBOU1dpbmRvdyAqcGFyZW50V2luZG93KQorYm9vbCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWM6OmV4aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCwgTlNX
aW5kb3cgKnBhcmVudFdpbmRvdykKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3JlZW4oJXApLCBmaW5hbFJlY3Q6eyVkLCAlZCwg
JWQsICVkfSwgcGFyZW50V2luZG93OiVwIiwgdGhpcywgZmluYWxSZWN0LngoKSwgZmluYWxSZWN0
LnkoKSwgZmluYWxSZWN0LndpZHRoKCksIGZpbmFsUmVjdC5oZWlnaHQoKSwgcGFyZW50V2luZG93
KTsKIApAQCAtNDg5LDYgKzQ4OSw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
OjpleGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QsIE5TV2luCiAgICAgICAg
IFttX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9iakMgZXhpdFBJUF07CiAgICAgZWxzZQog
ICAgICAgICBbbV93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDIGV4aXRQSVBBbmltYXRp
bmdUb1JlY3Q6ZmluYWxSZWN0IGluV2luZG93OnBhcmVudFdpbmRvd107CisKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggYjIwMjhmYzI2YmYx
Y2ExYzk3MmJlNGNlODkwMTFjNjE2ZDUxZTQyMi4uZmViMGY2NDJkOGEwZmNlNDhhNDMzYWIzYjM0
NTBiY2EwZjkyZTFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTExMiw3ICsxMTIsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lk
IGRpZENsZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0
dXJuVG9JbmxpbmUoKSBmaW5hbDsKLSAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9Jbmxp
bmUoKSBmaW5hbDsKIAogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogbV9tYW5hZ2Vy
OwogICAgIFJlZjxQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ+IG1fcGxheWJhY2tTZXNzaW9u
TW9kZWw7CkBAIC0xMjcsNyArMTI2LDYgQEAgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Q2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZpZGVvRnVsbHNjcmVlbk0KIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSB7IH07
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29s
IHZhbHVlKSA9IDA7CiB9OwogCkBAIC0xNzIsNiArMTcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGFkZENsaWVudEZvckNvbnRleHQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwog
ICAgIHZvaWQgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllcik7CiAKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENo
YW5nZShib29sKTsKIAogICAgIC8vIE1lc3NhZ2VzIGZyb20gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cgpAQCAtMTgwLDggKzE3OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRIYXNWaWRlb0NvbnRl
bnRMYXllcihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCB2YWx1ZSk7CiAg
ICAgdm9pZCBzZXRIYXNWaWRlbyhQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9v
bCk7CiAgICAgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwotICAgIHZvaWQgZW50ZXJGdWxs
c2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKLSAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRS
ZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBleGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIHZpc2libGUsIFdl
YkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CiAgICAgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxz
Y3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwpAQCAtMjAxLDcgKzE5OSw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2
aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7Ci0gICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVy
blRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIGJvb2wg
bV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIG1fbW9ja1BpY3R1cmVJblBpY3R1cmVXaW5kb3dTaXplIHsgRGVmYXVsdE1v
Y2tQaWN0dXJlSW5QaWN0dXJlV2luZG93V2lkdGgsIERlZmF1bHRNb2NrUGljdHVyZUluUGljdHVy
ZVdpbmRvd0hlaWdodCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDQxZjA2Y2M4ZThlMjUxOTc5YjU1MmE0M2EzMTY0NGZkMTI5MmE0NDYuLjQ0MTJlYjg1
MTRmMDcwNWU1ZmEyZjUxY2Y0NTc5MmQ2YjFiZDllYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDggKzI1LDEwIEBAIG1lc3NhZ2VzIC0+IFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0SGFzVmlkZW8oV2ViS2l0OjpQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCiAgICAg
U2V0VmlkZW9EaW1lbnNpb25zKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKQogICAgIFNl
dHVwRnVsbHNjcmVlbldpdGhJRChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQgdmlkZW9MYXllcklE
LCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9E
aW1lbnNpb25zLCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29s
IGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKKyNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBFbnRlckZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCi0gICAgRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3Qg
ZmluYWxSZWN0KQorI2VuZGlmCisgICAgRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxS
ZWN0KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogICAgIFNldElubGluZVJlY3QoV2ViS2l0OjpQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJl
Y3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQogICAgIFNldEhhc1ZpZGVvQ29udGVudExheWVy
KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29s
IHZhbHVlKQogICAgIENsZWFudXBGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDhj
ZmU4YzVkNzk3Mzg0ODg3OTI5YTYwNzkxODQwNGE4NmNjZDgxYTMuLjMzZjU3MGU3NjU3ZDBlZmI1
YmI3NTcyOTIzZmEwNTZkZmExMzQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI3
NCwxMiArMjc0LDYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgICAgIG1fbWFuYWdlci0+ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKG1fY29udGV4dElkKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bENvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKQotewotICAgIGlmIChtX21h
bmFnZXIpCi0gICAgICAgIG1fbWFuYWdlci0+ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSht
X2NvbnRleHRJZCk7Ci19Ci0KIHZvaWQgVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpyZXF1
ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBpZiAobV9tYW5hZ2VyKQpAQCAtNjA3LDExICs2MDEsMTMgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmkKICAgICB9CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpleGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQordm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKG1fY29u
dGV4dE1hcC5jb250YWlucyhjb250ZXh0SWQpKTsKLSAgICBpZiAoIW1fY29udGV4dE1hcC5jb250
YWlucyhjb250ZXh0SWQpKQorICAgIGlmICghbV9jb250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJ
ZCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47
CisgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgSW50UmVjdCBmaW5hbFdp
bmRvd1JlY3Q7CkBAIC02MjQsMTMgKzYyMCwxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZQog
I2Vsc2UKICAgICAgICAgZGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKTsKICNlbmRpZgorICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCku
ZXhpdEZ1bGxzY3JlZW4oZmluYWxSZWN0KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihlbnN1cmVJ
bnRlcmZhY2UoY29udGV4dElkKS5leGl0RnVsbHNjcmVlbihmaW5hbFJlY3QpKTsKICNlbHNlCi0g
ICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuZXhpdEZ1bGxzY3JlZW4oZmluYWxXaW5kb3dS
ZWN0LCBtX3BhZ2UtPnBsYXRmb3JtV2luZG93KCkpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGVu
c3VyZUludGVyZmFjZShjb250ZXh0SWQpLmV4aXRGdWxsc2NyZWVuKGZpbmFsV2luZG93UmVjdCwg
bV9wYWdlLT5wbGF0Zm9ybVdpbmRvdygpKSk7CiAjZW5kaWYKIH0KIApAQCAtNzAyLDYgKzY5OSw4
IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpjbGVhbnVwRnVsbHNjcmVlbihQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5l
UmVjdCkKIHsKKyAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0Owog
ICAgIG1fcGFnZS0+cm9vdFZpZXdUb1dpbmRvdyhpbmxpbmVSZWN0LCBpbmxpbmVXaW5kb3dSZWN0
KTsKQEAgLTc0OSw3ICs3NDgsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
cmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dAogCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKIHsKLSAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0
SWQpKTsKKyAgICBlbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKIH0KIAogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCkBAIC03ODIsNyArNzgxLDcgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFudXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGUKICAgICBtb2RlbC0+c2V0TGF5ZXJIb3N0VmlldyhudWxscHRyKTsKICAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZENsZWFu
dXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRNb2RlKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgIGludGVyZmFj
ZS0+c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25l
LCBmYWxzZSk7CiAgICAgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwogfQogCkBA
IC04MTEsMTUgKzgxMCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxs
c2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogewotICAgIG1fcGFnZS0+ZnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci19Ci0KLXZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKLXsKLSAgICBib29sIGlzVmll
d1Zpc2libGUgPSBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9Jbmxp
bmUoY29udGV4dElkLCBpc1ZpZXdWaXNpYmxlKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoY29u
dGV4dElkLCBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKSkpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4IDViNGEyNjBjOGE2
MDI1MTJlZjNhMzljYWE0MTRiNzY3OWE1YjQ3MGYuLmE5ZTZlZGMwOWU4MzlmZDg0ZjY1ZjYyMzli
NGJiMDcyOTM5NDg1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
dWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcklPUy5tbQpAQCAtNDI5LDcgKzQyOSw2IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZh
bCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKIEBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KQogLSAodm9p
ZClkaWRFbnRlclBpY3R1cmVJblBpY3R1cmU7Ci0tICh2b2lkKXByZXBhcmVUb0V4aXRQaWN0dXJl
SW5QaWN0dXJlOwogLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZTsKIEBlbmQKIApAQCAt
NDM5LDExICs0MzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbAotICAgIHsK
LSAgICAgICAgW21fcGFyZW50IHByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlXTsKLSAgICB9
Ci0KICAgICB2b2lkIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlKGJvb2wgdmFs
dWUpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAodmFsdWUpCkBAIC00NzUsNyArNDY5LDcgQEAg
cHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuSW50ZXJhY3RpdmVUcmFuc2l0aW9u
PiBfaW50ZXJhY3RpdmVEaXNtaXNzVHJhbnNpdGlvbkNvb3JkaW5hdG9yOwogCiAgICAgV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCBf
dmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50OwotICAgIEJPT0wgX2luUGljdHVyZUlu
UGljdHVyZTsKKyAgICBCT09MIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUlu
UGljdHVyZTsKICAgICBCT09MIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0
dXJlOwogICAgIEJPT0wgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlOwog
CkBAIC02OTcsMTMgKzY5MSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcGFnZS0+c2V0U3Vw
cHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAKICAgICAgICAgICAgIGlmIChhdXRvKiB2
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewot
ICAgICAgICAgICAgICAgIEFTU0VSVCh2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGllbnQoKSA9
PSBudWxscHRyKTsKICAgICAgICAgICAgICAgICB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5zZXRD
bGllbnQoJl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQpOwotICAgICAgICAgICAg
ICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6
IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSkg
eworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9
IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9s
c01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHIpIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlKFlFUyk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9pblBpY3R1cmVJ
blBpY3R1cmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZS0+cHJlcGFyZWRUb1Jlc3RvcmVGdWxsc2NyZWVuU3RhbmRieSgpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmICh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPmluUGljdHVyZUluUGlj
dHVyZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbW9kZWwgPSB2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfZW50ZXJGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGlj
dHVyZSA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbC0+cmVxdWVzdEZ1
bGxzY3JlZW5Nb2RlKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUpOwpAQCAtNzI3LDYgKzcyMCwxMCBAQCBwcml2YXRlOgogICAgIGlmIChfZnVs
bFNjcmVlblN0YXRlICE9IFdlYktpdDo6Tm90SW5GdWxsU2NyZWVuKQogICAgICAgICByZXR1cm47
CiAKKyAgICAvLyBTd2l0Y2ggdGhlIGFjdGl2ZSB0YWIgaWYgbmVlZGVkCisgICAgaWYgKGF1dG8q
IHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0uZ2V0KCkpCisgICAgICAgIHBhZ2UtPmZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxm
Ll9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtNzU5LDYgKzc1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IFdlYktpdDo6V2FpdGluZ1RvRXhp
dEZ1bGxTY3JlZW47CisgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gWUVTOwogCiAgICAgaWYgKGF1
dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnNldEFuaW1h
dGluZ0Z1bGxTY3JlZW4odHJ1ZSk7CkBAIC04MjksMTIgKzgyNyw4IEBAIHByaXZhdGU6CiAgICAg
ICAgIG1hbmFnZXItPmRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgfQogCi0gICAgaWYgKCFfaW5Q
aWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAgICAgICAgQVNTRVJU
KHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Q2xpZW50IHx8IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09IG51
bGxwdHIpOwotICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+c2V0Q2xpZW50KG51
bGxwdHIpOwotICAgICAgICB9Ci0gICAgfQorICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZSA9IHNlbGYuX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyBzZWxmLl92aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgX3No
b3VsZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+aW5QaWN0dXJlSW5QaWN0
dXJlKCk7CiAKICAgICBbX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKICAgICBfd2luZG93ID0gbmls
OwpAQCAtODYyLDcgKzg1Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9KTsKIAotICAg
IGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgYXV0byogcGFnZSA9
IFtzZWxmLl93ZWJWaWV3IF9wYWdlXS5nZXQoKTsKKyAgICBpZiAocGFnZSAmJiBwYWdlLT5pc1Zp
ZXdGb2N1c2VkKCkpCiAgICAgICAgIHBhZ2UtPmZvcmNlUmVwYWludChfcmVwYWludENhbGxiYWNr
LmNvcHlSZWYoKSk7CiAgICAgZWxzZQogICAgICAgICBfcmVwYWludENhbGxiYWNrLT5wZXJmb3Jt
Q2FsbGJhY2soKTsKQEAgLTkwMiwzOSArODk3LDMwIEBAIHByaXZhdGU6CiAKIC0gKHZvaWQpZGlk
RW50ZXJQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IFlFUzsK
LSAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwotfQotCi0tICh2b2lkKXByZXBhcmVU
b0V4aXRQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgaWYgKF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4
aXRQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiB2aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5f
dmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxs
cHRyOwotCi0gICAgaWYgKCF2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlKE5PKTsKLSAgICBfcmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1
cmUgPSBZRVM7Ci0KLSAgICBpZiAoIV9leGl0aW5nRnVsbFNjcmVlbikKLSAgICAgICAgW3NlbGYg
cmVxdWVzdEVudGVyRnVsbFNjcmVlbl07Ci0gICAgZWxzZQotICAgICAgICBfZW50ZXJSZXF1ZXN0
ZWQgPSBZRVM7CisgICAgX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0
dXJlID0gWUVTOworICAgIGlmIChfZnVsbFNjcmVlblN0YXRlID09IFdlYktpdDo6SW5GdWxsU2Ny
ZWVuKQorICAgICAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwogfQogCiAtICh2b2lk
KWRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IE5P
OwotICAgIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlID0gTk87Ci0g
ICAgaWYgKCFbc2VsZiBpc0Z1bGxTY3JlZW5dKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAg
ICAgICAgQVNTRVJUKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KTsKLSAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVl
bk1hbmFnZXItPnNldENsaWVudChudWxscHRyKTsKKyAgICBpZiAoIV9lbnRlckZ1bGxzY3JlZW5O
ZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9t
UGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5fdmlkZW9GdWxsc2NyZWVu
TWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOworICAgICAgICBp
ZiAodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+
cmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkoKSkgeworICAgICAgICAgICAgaWYgKCFfZXhpdGlu
Z0Z1bGxTY3JlZW4pIHsKKyAgICAgICAgICAgICAgICBpZiAoX2Z1bGxTY3JlZW5TdGF0ZSA9PSBX
ZWJLaXQ6OkluRnVsbFNjcmVlbikKKyAgICAgICAgICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlLT5wcmVwYXJlZFRvUmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBbc2VsZiByZXF1ZXN0RW50ZXJGdWxs
U2NyZWVuXTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIF9lbnRlclJlcXVl
c3RlZCA9IFlFUzsKKworICAgICAgICAgICAgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJl
SW5QaWN0dXJlID0gWUVTOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQor
CisgICAgX2VudGVyRnVsbHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmUgPSBOTzsKIH0K
IAogI3ByYWdtYSBtYXJrIC0KQEAgLTEwMDEsOSArOTg3LDExIEBAIHByaXZhdGU6CiAKIC0gKHZv
aWQpX2V4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkKIHsKLSAgICBpZiAoIVtzZWxmIGlzRnVsbFNj
cmVlbl0pCisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgPT0gV2ViS2l0OjpOb3RJbkZ1bGxTY3Jl
ZW4pCiAgICAgICAgIHJldHVybjsKIAorICAgIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9t
UGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworCiAgICAgYXV0byogbWFuYWdlciA9IHNlbGYuX21h
bmFnZXI7CiAgICAgaWYgKG1hbmFnZXIpCiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFeGl0RnVs
bFNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA0NGYwNzcxZTY4OTM5M2NkMWQw
MmFmNTI3ZTgyODAzNGMyM2I4YWIxLi40YTA2OWNlOGIzYjQ4OWMwYmNjNTA1ZDljNTEwZmE1MDE0
YmQyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtNjQsMTAgKzY0LDYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKnBhcmVu
dCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCkgZmluYWwKLSAgICB7Ci0gICAgfQotCiAgICAgdm9pZCBoYXNW
aWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29sIHZhbHVlKSBmaW5hbAogICAgIHsK
ICAgICAgICAgaWYgKHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBkMDJlZjgyM2Vm
ZTI2OTI1MmQ4YzFiNDM1NTUxZmI3MzEzMDU0ODQ3Li5mZWRjM2RiMTBhZDc3M2JkNTUzNjMyNmZh
YjFjMTc0MDg1Y2IxNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAwOSw5ICsxMDA5
LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGUKICAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVu
TWFuYWdlcigpLmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVu
dCwgbW9kZSwgc3RhbmRieSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVu
TWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50
KTsKKyAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5h
Z2VyKEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCBjNmY4YjlkZTZhNzBlZjIzN2QxZjQ4Y2VjYjQwMTEzNTc3NTUyOTllLi4xNzFmYTYzMzNkY2Uz
MjNjMDBjNzhjZWJkZTI3M2YwMGU2YzkwZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNzUs
NyArMjc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3Rh
bmRieSgpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwotICAgIHZv
aWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pIGZpbmFsOwogICAgIHZvaWQgc2V0VXBQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JikgZmluYWw7CiAgICAg
dm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgZmluYWw7CiAgICAgdm9pZCBwbGF5
YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRl
eCBiMWQ5ZGI4YTFmMzlkZDBhZGRjOTQyMDNiMmZlM2M3MDY3ZmY5OTFiLi5kNGQxOTIzNDYxNjUy
MGUwY2E0MmVkZDdiMTBjNmNlMjRjZDU0YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0Z1
bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xMDMsNyArMTA0LDcgQEAgcHJpdmF0
ZToKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBtX21hbmFnZXI7CiAgICAgUGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIgbV9jb250ZXh0SWQ7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PExheWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKLSAgICBBbmltYXRp
b25UeXBlIG1fYW5pbWF0aW9uVHlwZSB7IGZhbHNlIH07CisgICAgQW5pbWF0aW9uVHlwZSBtX2Fu
aW1hdGlvblR5cGUgeyBBbmltYXRpb25UeXBlOjpOb25lIH07CiAgICAgYm9vbCBtX3RhcmdldElz
RnVsbHNjcmVlbiB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1fZnVsbHNjcmVlbk1vZGUgeyBXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lIH07CiAgICAgYm9vbCBtX2Z1
bGxzY3JlZW5TdGFuZGJ5IHsgZmFsc2UgfTsKQEAgLTEyMyw3ICsxMjQsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNWaWRl
b0Z1bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3Q7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpOwot
ICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Jik7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVl
blRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAKIHByb3Rl
Y3RlZDoKQEAgLTE0OSw3ICsxNTAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZXF1ZXN0VXBk
YXRlSW5saW5lUmVjdChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9p
ZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIpOwogICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIpOworI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgZGlk
U2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKKyNlbmRp
ZgogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXplPik7CkBAIC0x
NTcsNyArMTYwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVu
Y2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3Qg
Ym91bmRzLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICB2b2lkIHNldFZpZGVvTGF5
ZXJHcmF2aXR5RW51bShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgdW5zaWduZWQg
Z3Jhdml0eSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSk7Ci0gICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2libGUpOworICAg
IHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2libGUpOwogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hh
cmluZ1BvbGljeUFuZENvbnRleHRVSUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIs
IE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9s
aWN5QW5kQ29udGV4dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDVkNzg5ODdhMmMwYmI5OGEwMzQ0
OGQ1YTY1MGIyNjgwZmEyMWUwOGQuLmJkN2JiYTU3MjFkZDE0MmJhYzU0MmJjODkxZDc1YzJiZTRi
MTlhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNiw3ICsyNiw5
IEBAIG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFJlcXVlc3RVcGRh
dGVJbmxpbmVSZWN0KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkKQogICAgIFJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihXZWJLaXQ6OlBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBSZXR1cm5WaWRlb0NvbnRlbnRM
YXllcihXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkK
KyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEaWRTZXR1cEZ1bGxzY3JlZW4oV2ViS2l0
OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCisjZW5kaWYKICAg
ICBXaWxsRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllciBjb250ZXh0SWQpCiAgICAgRGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVu
KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IHNpemUpCkBAIC0zNCw3ICszNiw3IEBAIG1lc3NhZ2Vz
IC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFNldFZpZGVvTGF5ZXJGcmFtZUZlbmNl
ZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2Vi
Q29yZTo6RmxvYXRSZWN0IGJvdW5kcywgTWFjaFNlbmRSaWdodCBtYWNoU2VuZFJpZ2h0KQogICAg
IFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCwgdW5zaWduZWQgZ3Jhdml0eSkKICAgICBGdWxsc2NyZWVuTW9k
ZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2
aWRlb0Z1bGxzY3JlZW5Nb2RlKQotICAgIEZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoV2Vi
S2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQ
YWdlVmlzaWJsZSkKKyAgICBGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQYWdlVmlzaWJs
ZSkKICAgICBSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChXZWJLaXQ6OlBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkgLT4gKGVudW06dWludDhf
dCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcg
cm91dGluZ0NvbnRleHRVSUQpIEFzeW5jCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXgg
ZjdmYTc1OWU5ZWViMWI2Y2JkMTkyZDY5MDY0ZjY2N2U0OGJhNWNkMC4uOGNlZThmOGRiM2ViZmQz
N2YwMWVlZjdhNWY0ZmM0M2E1NGVkMjFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI1Nyw3ICsy
NTcsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICBhdXRvIHZpZGVvUmVjdCA9IGlu
bGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KTsKICAgICBGbG9hdFJlY3QgdmlkZW9MYXllckZy
YW1lID0gRmxvYXRSZWN0KDAsIDAsIHZpZGVvUmVjdC53aWR0aCgpLCB2aWRlb1JlY3QuaGVpZ2h0
KCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1ZSk7CisgICAg
aWYgKG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9u
ZSkKKyAgICAgICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1ZSk7CisgICAg
ZWxzZQorICAgICAgICBpbnRlcmZhY2UtPnNldFRhcmdldElzRnVsbHNjcmVlbihmYWxzZSk7CisK
ICAgICBpbnRlcmZhY2UtPnNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUpOwogICAgIGludGVyZmFjZS0+
c2V0RnVsbHNjcmVlblN0YW5kYnkoc3RhbmRieSk7CiAgICAgbW9kZWwtPnNldFZpZGVvRWxlbWVu
dCgmdmlkZW9FbGVtZW50KTsKQEAgLTI4OCw3ICsyOTIsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0Vs
ZW1lbgogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9z
dGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgRmxvYXRTaXplKHZpZGVvRWxl
bWVudC52aWRlb1dpZHRoKCksIHZpZGVvRWxlbWVudC52aWRlb0hlaWdodCgpKSwgbV9wYWdlLT5k
ZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1Bp
Y3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmIHZpZGVvRWxlbWVudCkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhp
dFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCVwKSIsIHRoaXMpOwogICAgIEFT
U0VSVChtX3BhZ2UpOwpAQCAtMjk2LDEyICszMDAsMjAgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxW
aWQKIAogICAgIGF1dG8gY29udGV4dElkID0gbV92aWRlb0VsZW1lbnRzLmdldCgmdmlkZW9FbGVt
ZW50KTsKICAgICBhdXRvJiBpbnRlcmZhY2UgPSBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKTsK
LSAgICBpbnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKICAgICBpZiAoaW50
ZXJmYWNlLmFuaW1hdGlvblN0YXRlKCkgIT0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4
dDo6QW5pbWF0aW9uVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50ZXJmYWNl
LnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1h
dGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkLCBpbmxp
bmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpKTsKKyAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNjcmVl
bihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KSksIFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHN1Y2Nlc3MpIG11dGFibGUgewor
ICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8mIGlu
dGVyZmFjZSA9IGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpOworICAgICAgICBpbnRlcmZhY2Uu
c2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKKyAgICAgICAgaW50ZXJmYWNlLnNldEFuaW1h
dGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5cGU6
OkZyb21GdWxsc2NyZWVuKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAg
fSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVl
blRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9F
bGVtZW50LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgdGFyZ2V0TW9kZSkKQEAgLTM4OSwxOSArNDAxLDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6cmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50CiAgICAgfSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyIGNvbnRleHRJZCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4
dElkKTsKIAogICAgIEFTU0VSVChtX3BhZ2UpOwogICAgIGF1dG8gW21vZGVsLCBpbnRlcmZhY2Vd
ID0gZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKLQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4o
Y29udGV4dElkKSk7Ci0gICAgfSk7Ci0jZWxzZQogICAgIENBTGF5ZXIqIHZpZGVvTGF5ZXIgPSBp
bnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+cm9vdExheWVyKCk7CiAKICAgICBtb2Rl
bC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewpAQCAtNDEwLDgg
KzQxNiw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVu
KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyCiAgICAgICAgICAgICAgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNj
cmVlbihjb250ZXh0SWQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7Ci0jZW5kaWYKIH0KKyNlbmRp
ZgogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiB7CkBAIC00NDUsMTMgKzQ1
MSwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbihQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcgogCiAgICAgdmlkZW9FbGVtZW50LT5kaWRF
bnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoc2l6ZS52YWx1ZU9yKFdlYkNvcmU6OkZs
b2F0U2l6ZSgpKSk7CiAKLSAgICBpZiAoaW50ZXJmYWNlLT50YXJnZXRJc0Z1bGxzY3JlZW4oKSkK
KyAgICBpZiAoaW50ZXJmYWNlLT50YXJnZXRJc0Z1bGxzY3JlZW4oKSB8fCBpbnRlcmZhY2UtPmZ1
bGxzY3JlZW5TdGFuZGJ5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGV4aXQgZnVsbHNj
cmVlbiBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmltYXRp
b24uCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1lbnRdIHsKICAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CisgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRl
b0VsZW1lbnQsIFtdKGJvb2wpIHsgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw3ICs0NzUsNyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1
bGxzY3JlZW4oY29udGV4dElkKSk7CiAgICAgfSk7CiAjZWxzZQotICAgIG1vZGVsLT53YWl0Rm9y
UHJlcGFyZWRGb3JJbmxpbmVUaGVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwg
Y29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKKyAgICBtb2RlbC0+d2Fp
dEZvclByZXBhcmVkRm9ySW5saW5lVGhlbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhp
cyksIGNvbnRleHRJZCwgaW50ZXJmYWNlLCBtb2RlbF0oKSBtdXRhYmxlIHsKICAgICAgICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZSwgbW9kZWxdICgpIG11
dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwg
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVy
ZmFjZV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gewpAQCAtNTI2LDcgKzUzMiw3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVuCiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRWaWRlb0xheWVy
R3Jhdml0eSgoTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KWdyYXZpdHkpOwogfQogCi12
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUo
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZp
c2libGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wg
aXNQYWdlVmlzaWJsZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCBiZjI5YmVjZTc1NWU2ZjU1MWZjM2NjZjQ3NzJkNzZkMDU2NTYyOTY4
Li4zN2M4NjI2NjA5YTFlNjJjZmE3N2VhNmY4NDkyNzU1OWViYjRhMDA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMjA1LDcgKzIwNSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwotICAgIHZv
aWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pIGZpbmFsOwogICAgIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYs
IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmlu
YWw7CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGUxMTgyYmQ0ZDU5NDBm
MzUxYjc2ZjhjZjA0MThhN2RlZTM5YzI5MTEuLjZmZDdhMjY1MzIxNTVjOWM4ZDU3NTM2NTUxNGU0
ZjRhMWE4Y2I4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTk5MywxNCArOTkzLDE1IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChI
VE1MVmlkZW9FbGVtZW50JiB2aWRlCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCiAgICAgICAgIHZp
ZGVvRWxlbWVudC5kaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwogICAgIGVsc2UKICAg
ICAgICAgW21fd2ViVmlldyBfZXhpdFZpZGVvRnVsbHNjcmVlbl07Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgY29t
cGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0Vmlk
ZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50JiB2aWRl
b0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB0YXJn
ZXRNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZTUzMTA5M2QyOTUxM2JjOWNkOTg1NzMx
M2VjYWM0MjMyZmYyYTdmYS4uZjc0NWRkNDU5YzE2YjE2NDVkYTA0ZGY1MzFhOGZiMjIyY2Y0NmRi
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NzYsOSArNzc2LDEwIEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9F
bGVtZW50JiB2aWRlCiAgICAgbV93ZWJWaWV3LT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudCh2aWRlb0VsZW1lbnQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1l
bnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV93ZWJWaWV3LT5leGl0Vmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7CisgICAgY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBhYzVjZGQy
N2U3MzgzMDU4YmY5NTczZTFiMGU1NGM0Zjc1OTcwZWQ3Li45NjAxOWVhODU0ODE2ZjkyOGZkNDhh
NThkMzJjYzYyYmQyYzYxMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTQ5LDcgKzE0OSw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU8pCiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNj
cmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
IGZpbmFsOwogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBleGl0VmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKSBmaW5hbDsK
KyAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiA9IFtd
KGJvb2wpIHsgfSkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413394</attachid>
            <date>2020-11-05 20:43:49 -0800</date>
            <delta_ts>2020-11-06 14:03:08 -0800</delta_ts>
            <desc>Fix a picture-in-picture issue on mac</desc>
            <filename>bug-218419-20201105204348.patch</filename>
            <type>text/plain</type>
            <size>73994</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzNTZkYTE2YTc0NjNi
MmE2NWUyZjdhYmZkNGE2N2Y5ZWY5NDE2My4uODEzODA5MzRiNzI1Njk3NDY4M2E3MTE0MmYzZTEy
NWVjMzBmZDZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTExLTA1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVt
ZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxz
Y3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxs
c2NyZWVuU3RhbmRieSk6CisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0UHJlc2VudGF0aW9u
TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxz
Y3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bkNoYW5nZU9ic2VydmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50
OjpmYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENsaWVudDo6cHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgorICAgICAgICAoVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSk6Cisg
ICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmFpbGVkVG9TdGFydFBpY3R1
cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6Ondp
bGxTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkU3RvcFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAoVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21w
bGV0aW9uSGFuZGxlcik6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OmRvU2V0dXApOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnByZXBhcmVkVG9SZXN0b3JlRnVsbHNjcmVlblN0YW5kYnkpOgorICAgICAgICAoVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbkhhbmRsZXIpOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkhh
bmRsZXIpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRv
U3RhbmRieSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9k
ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYXJNb2RlKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzdG9wUGljdHVyZUluUGlj
dHVyZVRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRl
eHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRNb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3JlZW4pOgorCiAyMDIw
LTExLTA1ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBD
TTogU3dpdGNoIHRvIEpTT04gcmVwb3J0IGZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0Njk4ZDUzN2FlOTJk
NDc3YTAwODk5ZjM4OTQ0ZTUxOWYxM2EwN2JlLi5hM2YxMDE5YTdmMzIyYjBjYzYyZDJkNTE0MmM2
ZGEwYzQ1Zjk2YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTExLTA1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVt
ZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OmRpZFNldHVwRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVsQ29udGV4dDo6ZnVsbHNjcmVlbldp
bGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXJJT1MubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
YmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAg
ICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEVudGVyRnVsbFNjcmVl
bl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGV4aXRGdWxsU2Ny
ZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX2NvbXBsZXRl
ZEV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseV0pOgor
ICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHByZXBhcmVUb0V4aXRQaWN0
dXJlSW5QaWN0dXJlXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4p
OgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxz
Y3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1
bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCiAy
MDIwLTExLTA1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gUmVtb3ZlIG1kbnNyZXNwb25kZXIgYWNjZXNzIGZyb20gV2ViS2l0IHByb2Nlc3Nl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGVkNzQ0ODgwMWZkNGU1ZGIxMTY4MWRj
MjZlZTZkMDEzMjcwMTAxOTEuLjIzOTkwN2Y3ZGJjNTUwNDU0ZTM2MjU3NDY0MWMyOWI3ODNjZDFk
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0x
MS0wNSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFBpUCByZXR1
cm4gdG8gZWxlbWVudCBmdWxsIHNjcmVlbiBpcyBub3Qgc21vb3RoIG9uIHNvbWUgd2Vic2l0ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODQxOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisKIDIwMjAtMTEtMDQgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNb3ZlIHRo
ZSBpbnRlcm5hbCBHUFUgcmVuZGVyaW5nIGZsYWdzIGZyb20gV2ViUGFnZSB0byBXZWJQcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggOWI2YzgyMWQwNWRkMTllMjcxY2U5ZGU4
ODIyZmU4NDVhNTUyZmM2OC4uNmQ4MDQ1YWQ3NjRkODY5NDUxMzM4ZDYyNjEwMjg2NGZkYmFhODk4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEx
LTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVy
biB0byBlbGVtZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9y
IFNwZWVjaFJlY29nbml0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAppbmRleCAyZWNjNzdiNzRhMDljZmEwMjYwMTY1MDc0MzkxMjA4Njg2OTA1MjcwLi4xNGMzOTc3
Y2IxZmM4YmU2Yzg3YTBmMmZkZTgyMmJkMTMwNDBmMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU5NzIsNyArNTk3Miw2IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4oKQogCiAgICAgaWYgKGRvY3VtZW50KCkuYWN0aXZlRE9N
T2JqZWN0c0FyZVN1c3BlbmRlZCgpIHx8IGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN0
b3BwZWQoKSkgewogICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSk7Ci0gICAgICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1ZTsKICAg
ICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KCp0
aGlzKSwgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQo
KS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKG9sZFZp
ZGVvRnVsbHNjcmVlbk1vZGUpKSB7CiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlblN0YW5k
YnkpIHsKQEAgLTYwMzIsNyArNjAzMSw5IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuU3RhbmRieShib29sIHZhbHVlKQogICAgIGlmICht
X3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpCiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChkb3duY2Fz
dDxIVE1MVmlkZW9FbGVtZW50PigqdGhpcyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBtX3Zp
ZGVvRnVsbHNjcmVlblN0YW5kYnkpOwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
ZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpKTsKKyAgICAgICAgZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpXShhdXRvIHN1Y2Nlc3MpIG11dGFibGUgeworICAgICAgICAgICAg
bV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ID0gIXN1Y2Nlc3M7CisgICAgICAgIH0pOwogfQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCAxNWRhYjFmNDY0YTFlNzMy
MWY0NjU4M2JiOTZhOGRkMGFlYTFmMTI2Li42ZDI3ZjM2YzE3ODEzNWM5YWRjMWViZmJlMjYzNWNk
NTU5MDI2NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAg
LTQ2NywxMiArNDY3LDEzIEBAIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9k
ZSBIVE1MVmlkZW9FbGVtZW50Ojp0b1ByZXNlbnRhdGlvbk1vZGUoSFRNCiB2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2Rl
IG1vZGUpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIiwgbW9kZSA9ICIsICBtb2Rl
KTsKLSAgICBzZXRQcmVzZW50YXRpb25Nb2RlKG1vZGUpOworICAgIGlmICghaXNDaGFuZ2luZ1Zp
ZGVvRnVsbHNjcmVlbk1vZGUoKSkKKyAgICAgICAgc2V0UHJlc2VudGF0aW9uTW9kZShtb2RlKTsK
IH0KIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJl
c2VudGF0aW9uTW9kZSBtb2RlKQogewotICAgIGlmIChpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVu
TW9kZSgpIHx8IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBtb2RlKQor
ICAgIGlmICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gbW9kZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgYXV0byB2aWRlb0Z1bGxzY3JlZW5Nb2RlID0gdG9GdWxsc2Ny
ZWVuTW9kZShtb2RlKTsKQEAgLTQ4MSw3ICs0ODIsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6
OnNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAgICAgaWYg
KHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpIHsKICAgICAg
ICAgaWYgKGlzRnVsbHNjcmVlbigpKSB7CiAgICAgICAgICAgICBpZiAodG9QcmVzZW50YXRpb25N
b2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUlu
UGljdHVyZSkKLSAgICAgICAgICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0
cnVlOworICAgICAgICAgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwog
CiAgICAgICAgICAgICBleGl0RnVsbHNjcmVlbigpOwogICAgICAgICB9CkBAIC00OTMsOSArNDk0
LDkgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZpZGVvUHJl
c2VudGF0aW9uTW9kZSBtb2RlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAodmlkZW9GdWxs
c2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkKLSAgICAg
ICAgbV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CisgICAgICAgIG1fZW50ZXJp
bmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKICAgICBlbHNlIGlmIChmdWxsc2NyZWVuTW9kZSgp
ID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICBtX2lzRXhp
dGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5Q
aWN0dXJlID0gdHJ1ZTsKIAogICAgIGVudGVyRnVsbHNjcmVlbih2aWRlb0Z1bGxzY3JlZW5Nb2Rl
KTsKIH0KQEAgLTUwNyw4ICs1MDgsOCBAQCBhdXRvIEhUTUxWaWRlb0VsZW1lbnQ6OndlYmtpdFBy
ZXNlbnRhdGlvbk1vZGUoKSBjb25zdCAtPiBWaWRlb1ByZXNlbnRhdGlvbk1vZGUKIAogdm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoY29u
c3QgRmxvYXRTaXplJiBzaXplKQogewotICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0dXJlSW5QaWN0
dXJlKSB7Ci0gICAgICAgIG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAg
ICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9lbnRlcmluZ1Bp
Y3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKICAgICAgICAgc2V0Q2hhbmdpbmdWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKGZhbHNlKTsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQpAQCAt
NTIwLDggKzUyMSw4IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVu
T3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAobV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAg
IG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgIGlmIChtX2V4aXRpbmdQ
aWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBm
YWxzZTsKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICAgICAgaWYgKG1f
cGljdHVyZUluUGljdHVyZU9ic2VydmVyKQogICAgICAgICAgICAgbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CkBAIC01MzMsOCArNTM0LDggQEAg
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1
cmUoY29uc3QgRmxvYXRTaXplJiBzaXoKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0
RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSgpCiB7Ci0gICAgaWYgKG1faXNFeGl0aW5nUGlj
dHVyZUluUGljdHVyZSkgewotICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBm
YWxzZTsKKyAgICBpZiAobV9leGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBtX2V4
aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAgICAgICAgIHNldENoYW5naW5nVmlkZW9G
dWxsc2NyZWVuTW9kZShmYWxzZSk7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQ
SSkKQEAgLTU2MCw3ICs1NjEsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRnVs
bHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAog
I2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQotICAgIGlmICghbV9pc0VudGVyaW5n
UGljdHVyZUluUGljdHVyZSAmJiAhbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlICYmIG1fcGlj
dHVyZUluUGljdHVyZU9ic2VydmVyKQorICAgIGlmICghbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1
cmUgJiYgIW1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgJiYgbV9waWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIpCiAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5waWN0dXJlSW5QaWN0
dXJlV2luZG93UmVzaXplZChJbnRTaXplKGZyYW1lLnNpemUoKSkpOwogI2VuZGlmCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGVmZmYzZjY2ZTgxM2I3Nzg2OTgw
Y2FiY2EzNTEwYjEyMGRiNjA0MDIuLjE3ZDY1MjE5MjA1MzdmY2RlOGMwNGI0Mjc4MTZkY2E3NzU0
NTU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xNDIsOCAr
MTQyLDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVvSGVpZ2h0
IHsgMCB9OwogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAgIGJvb2wg
bV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzRXhp
dGluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9lbnRlcmluZ1BpY3R1
cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVy
ZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNmRkZDliYzcwYzMwNjYyYzRmZGY3
ZDY0NDAyOTIwNWNhMmExNGI5OS4uN2FmMTc4ZTk4NjY4ZGE5YzcxNDQ0NDUxMzI2MDY5NzQ4N2Q4
MzVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24o
TWVkaWFTZXNzaW9uSWRlbnRpZmllcikgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1M
VmlkZW9FbGVtZW50JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyID0gW10oYm9vbCkgeyB9KSB7IGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOyB9
CiAgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5o
CmluZGV4IGY0OTEyNDYyN2U2YWI1NzJlYzc5MmYwMjdjYzNmOWM4N2M2YjhhNzUuLjYzMTc5Nzgx
ODFhOTg4ZDcyN2Y1YTUwNWZkOWRjMGMyNmNmY2JkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2
ZXIuaApAQCAtNDIsNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRG
dWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkgPSAwOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9G
dWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1vZGVsLmgKaW5kZXggOWY4ZGQwODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0NzFiMDlj
YWRkYi4uMGZlZDc5NWFjYTlkOTg2ZmQxOThmY2VjOGRmYjVjNTBhNWFkMmQ2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5o
CkBAIC04MSw3ICs4MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVudGVyUGlj
dHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlclBpY3R1cmVJblBp
Y3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJblBpY3R1
cmUoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmUo
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG1vZGVsRGVzdHJveWVkKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmluZGV4IDUy
ODAzMDNlNDg4YWUyMzgwYTU1OWNmNWExMWVlNzFkMmE3ZTU5M2UuLjhiZjQyNGRmYWFjY2M4OTgw
NjJlZjQ1YjcyZDc5MDNjZWYyMzNjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBAIC04MSw3
ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0dXBGdWxsc2Ny
ZWVuKFVJVmlldyYgdmlkZW9WaWV3LCBjb25zdCBJbnRSZWN0JiBpbml0aWFsUmVjdCwgY29uc3Qg
RmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMsIFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBp
Y3R1cmVQbGF5YmFjaywgYm9vbCBzdGFuZGJ5KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVu
dGVyRnVsbHNjcmVlbigpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4o
Y29uc3QgSW50UmVjdCYgZmluYWxSZWN0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV4aXRG
dWxsc2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxp
ZGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNj
cmVlbigpOwpAQCAtODksNiArODksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dEhhc1ZpZGVvQ29udGVudExheWVyKGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
SW5saW5lUmVjdChjb25zdCBJbnRSZWN0JiwgYm9vbCB2aXNpYmxlKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHByZXBhcmVkVG9SZXN0b3JlRnVsbHNjcmVlblN0YW5kYnkoKTsKIAogICAgIGVu
dW0gY2xhc3MgRXhpdEZ1bGxTY3JlZW5SZWFzb24gewogICAgICAgICBEb25lQnV0dG9uVGFwcGVk
LApAQCAtMTM2LDYgKzEzNyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JQaWN0dXJl
SW5QaWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAg
IGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CisgICAgYm9vbCBpblBp
Y3R1cmVJblBpY3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2VudGVyaW5nUGljdHVyZUluUGljdHVy
ZSB8fCBtX2N1cnJlbnRNb2RlLmhhc1BpY3R1cmVJblBpY3R1cmUoKTsgfQorICAgIGJvb2wgcmVz
dG9yaW5nRnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc3RvcmluZ0Z1bGxz
Y3JlZW5TdGFuZGJ5OyB9CiAKICAgICB2b2lkIHdpbGxTdGFydFBpY3R1cmVJblBpY3R1cmUoKTsK
ICAgICB2b2lkIGRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgpOwpAQCAtMTQ2LDEwICsxNDksOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBO
U0Vycm9yICopOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IgKik7CiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVu
KCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWFkeVRvU3RvcFBpY3R1cmVJ
blBpY3R1cmUoQk9PTCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2b2lkIGNsZWFyTW9k
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUsIGJvb2wgc2hvdWxkTm90aWZ5TW9kZWwpOworICAgIHZvaWQgY2xlYXJNb2RlKEhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzaG91bGROb3Rp
ZnlNb2RlbCk7CiAgICAgYm9vbCBoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRNb2RlLmhhc01vZGUo
bW9kZSk7IH0KIAogICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxl
cigpOwpAQCAtMTY2LDcgKzE2OCw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJldHVyblRvU3Rh
bmRieSgpOwogICAgIHZvaWQgZG9FbnRlckZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIHdhdGNoZG9n
VGltZXJGaXJlZCgpOwotICAgIHZvaWQgc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckZpcmVkKCk7
CiAgICAgV2ViQVZQbGF5ZXJDb250cm9sbGVyICpwbGF5ZXJDb250cm9sbGVyKCkgY29uc3Q7CiAK
ICAgICBSZWY8UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ+IG1fcGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlOwpAQCAtMTg0LDE0ICsxODUsMTQgQEAgcHJvdGVjdGVkOgogICAgIFJldGFpblB0
cjxXZWJBVlBsYXllckxheWVyVmlldz4gbV9wbGF5ZXJMYXllclZpZXc7CiAgICAgV1RGOjpGdW5j
dGlvbjx2b2lkKGJvb2wpPiBtX3ByZXBhcmVUb0lubGluZUNhbGxiYWNrOwogICAgIFJ1bkxvb3A6
OlRpbWVyPFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBtX3dhdGNoZG9nVGltZXI7Ci0g
ICAgUnVuTG9vcDo6VGltZXI8VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IG1fc3RvcFBp
Y3R1cmVJblBpY3R1cmVUaW1lcjsKICAgICBGbG9hdFJlY3QgbV9pbmxpbmVSZWN0OwogICAgIFJv
dXRlU2hhcmluZ1BvbGljeSBtX3JvdXRlU2hhcmluZ1BvbGljeSB7IFJvdXRlU2hhcmluZ1BvbGlj
eTo6RGVmYXVsdCB9OwogICAgIFN0cmluZyBtX3JvdXRpbmdDb250ZXh0VUlEOwogICAgIGJvb2wg
bV9hbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2sgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93
aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1fc2hvdWxk
UmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
c2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJl
U3RvcCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5IHsg
ZmFsc2UgfTsKIAogICAgIGJvb2wgbV9zZXR1cE5lZWRzSW5saW5lUmVjdCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2V4aXRGdWxsc2NyZWVuTmVlZElubGluZVJlY3QgeyBmYWxzZSB9OwpAQCAtMjI0
LDcgKzIyNSw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fc2hvdWxkSWdub3JlQVZLaXRDYWxs
YmFja0Fib3V0RXhpdEZ1bGxzY3JlZW5SZWFzb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRl
cmluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9leGl0aW5nUGljdHVy
ZUluUGljdHVyZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3JlYWR5VG9TdG9wUGljdHVyZUluUGlj
dHVyZSB7IHRydWUgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlYWY2
NzQ1N2VkOWE2OTdjOTljYTViZmExNzBkM2MwNzk3ZTg5ZTM1Li5lMTRiYWZmNTY5NjQyOGMxNDQw
ODA2MTIyNDliMGRmZWJkODdiMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC04NSw3
ICs4NSw2IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBib29sU3RyaW5nKGJvb2wgdmFsKQogI2VuZGlm
CiAKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGRlZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgeyAx
X3MgfTsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJJbnRl
cnZhbCB7IDFfcyB9Owogc3RhdGljIGJvb2wgaWdub3JlV2F0Y2hkb2dGb3JEZWJ1Z2dpbmcgPSBm
YWxzZTsKIAogQGludGVyZmFjZSBBVlBsYXllclZpZXdDb250cm9sbGVyIChEZXRhaWxzKQpAQCAt
ODIzLDcgKzgyMiw2IEBAIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdChQbGF5YmFja1Nlc3Npb25JbnRlCiAgICAgOiBtX3BsYXliYWNr
U2Vzc2lvbkludGVyZmFjZShwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgLCBtX3BsYXll
clZpZXdDb250cm9sbGVyRGVsZWdhdGUoYWRvcHROUyhbW1dlYkFWUGxheWVyVmlld0NvbnRyb2xs
ZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pKQogICAgICwgbV93YXRjaGRvZ1RpbWVyKFJ1bkxvb3A6
Om1haW4oKSwgdGhpcywgJlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3YXRjaGRvZ1Rp
bWVyRmlyZWQpCi0gICAgLCBtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5Q
aWN0dXJlVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtOTU1LDE5ICs5NTMsMjIgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCkKICAgICBkb0VudGVy
RnVsbHNjcmVlbigpOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpl
eGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpCitib29sIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJl
Y3QpCiB7Ci0gICAgaWYgKG1fd2F0Y2hkb2dUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3dh
dGNoZG9nVGltZXIuc3RvcCgpOworICAgIG1fd2F0Y2hkb2dUaW1lci5zdG9wKCk7CiAKLSAgICBp
ZiAobV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIG1heSBhc2sgYSB2aWRlbyB0byBleGl0IHN0YW5kYnkgd2hp
bGUgdGhlIHZpZGVvCisgICAgLy8gaXMgZW50ZXJpbmcgcGljdHVyZS1pbi1waWN0dXJlLiBXZSBu
ZWVkIHRvIGlnbm9yZSB0aGUgcmVxdWVzdCBpbiB0aGF0IGNhc2UuCisgICAgaWYgKG1fc3RhbmRi
eSAmJiBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgbV90YXJnZXRNb2RlID0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlTm9uZTsKIAogICAgIHNldElubGluZVJlY3QoZmluYWxSZWN0LCB0cnVlKTsKICAgICBk
b0V4aXRGdWxsc2NyZWVuKCk7CiAgICAgbV9zaG91bGRJZ25vcmVBVktpdENhbGxiYWNrQWJvdXRF
eGl0RnVsbHNjcmVlblJlYXNvbiA9IHRydWU7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQpAQCAt
OTc1LDkgKzk3Niw2IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFu
dXBGdWxsc2NyZWVuKCkKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKICAgICBtX3Nob3VsZEln
bm9yZUFWS2l0Q2FsbGJhY2tBYm91dEV4aXRGdWxsc2NyZWVuUmVhc29uID0gZmFsc2U7CiAKLSAg
ICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpCi0gICAgICAgIHJldHVybjsKLQogICAg
IG1fY2xlYW51cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIgPSB0cnVlOwogICAgIGlmICht
X2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7CiAg
ICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5yZXR1cm5WaWRlb0NvbnRlbnRMYXll
cigpOwpAQCAtMTAzNSw3ICsxMDMzLDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG51bGxw
dHI7CiAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIgPSBudWxscHRyOwotICAgIAorCisg
ICAgbV93YXRjaGRvZ1RpbWVyLnN0b3AoKTsKKyAgICBtX2VudGVyaW5nUGljdHVyZUluUGljdHVy
ZSA9IGZhbHNlOwogICAgIGNsZWFudXBGdWxsc2NyZWVuKCk7CiB9CiAKQEAgLTEwOTQsMTEgKzEw
OTQsOCBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNh
bGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZSgpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2
b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQogewogICAgIG1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIp
IHsKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLSAgICAg
ICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICAgICAgbV9mdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKTsKLSAg
ICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdGFydFBp
Y3R1cmVJblBpY3R1cmUoKQpAQCAtMTEyMCwyOCArMTExNywyNiBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCkKIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgpCiB7
CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlk
U3RhcnRQaWN0dXJlSW5QaWN0dXJlKCVwKSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSk7CisgICAg
c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJl
SW5QaWN0dXJlLCAhbV9lbnRlckZ1bGxzY3JlZW5OZWVkc0VudGVyUGljdHVyZUluUGljdHVyZSk7
CiAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllF
U107CiAgICAgW21fdmlld0NvbnRyb2xsZXIgX3NldElnbm9yZUFwcFN1cHBvcnRlZE9yaWVudGF0
aW9uczpOT107CiAKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkpIHsKLSAg
ICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBZRVM7Cisg
ICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGlj
dHVyZSA9IHRydWU7CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlv
dXRJZk5lZWRlZF07CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2Ny
ZWVuQW5pbWF0ZWQ6WUVTIGNvbXBsZXRpb25IYW5kbGVyOltwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZlB0cih0aGlzKSwgdGhpc10gKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqZXJyb3IpIHsKICAgICAg
ICAgICAgIGV4aXRGdWxsc2NyZWVuSGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgIH1d
OwogICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChtX3N0YW5kYnkpCisgICAgICAgICAgICBtX3No
b3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVl
OworCiAgICAgICAgIFttX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKICAgICAgICAgW1ttX3BsYXll
clZpZXdDb250cm9sbGVyIHZpZXddIHNldEhpZGRlbjpZRVNdOwogICAgIH0KIAotICAgIGlmICht
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5k
aWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKTsKLQogICAgIGlmIChtX2VudGVyRnVsbHNjcmVlbk5l
ZWRzRW50ZXJQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwot
Ci0gICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUo
KQpAQCAtMTE1MywxMSArMTE0OCwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpmYWlsZWRUb1N0YXJ0UGljdHVyZUluUGljdHVyZSgpCiAgICAgaWYgKG1fY3VycmVudE1v
ZGUuaGFzRnVsbHNjcmVlbigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0Z1
bGxzY3JlZW5Nb2RlbCkKKyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkgewogICAgICAg
ICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5mYWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgp
OwotCi0gICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwpCiAgICAgICAgIG1fdmlkZW9GdWxs
c2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2NyZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSgpCkBAIC0xMTY1LDcg
KzExNTksNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcFBp
Y3R1cmVJblBpY3R1cmUoKQogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVyZUluUGljdHVyZSglcCkiLCB0aGlzKTsKIAogICAg
IG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOwotICAgIG1fc2hvdWxkUmV0dXJuVG9G
dWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7CisgICAgbV9zaG91bGRSZXR1cm5Ub0Z1
bGxzY3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAKICAgICBpZiAo
bV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9y
UGljdHVyZUluUGljdHVyZVN0b3ApCiAgICAgICAgIHJldHVybjsKQEAgLTExODAsOCArMTE3NCwx
NyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUlu
UGljdHVyZSgpCiAgICAgbV90YXJnZXRNb2RlLnNldFBpY3R1cmVJblBpY3R1cmUoZmFsc2UpOwog
ICAgIFttX3ZpZXdDb250cm9sbGVyIF9zZXRJZ25vcmVBcHBTdXBwb3J0ZWRPcmllbnRhdGlvbnM6
WUVTXTsKIAorICAgIGlmIChtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5TdGFuZGJ5KSB7CisgICAgICAg
IG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgbV9lbnRlcmluZ1Bp
Y3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKKyAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTW9k
ZWwpCisgICAgICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5kaWRFeGl0UGljdHVyZUlu
UGljdHVyZSgpOworCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobV9jdXJyZW50
TW9kZS5oYXNGdWxsc2NyZWVuKCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUlu
UGljdHVyZVN0b3ApIHsKLSAgICAgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpOworICAgICAgICBjbGVhck1vZGUo
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVy
ZSwgIW1fZXhpdEZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIG1fcmVzdG9y
aW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wKTsKICAgICAgICAgW21fd2luZG93
IG1ha2VLZXlXaW5kb3ddOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRTaG93
c1BsYXliYWNrQ29udHJvbHM6WUVTXTsKIApAQCAtMTE5OCwxMSArMTIwMSw3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0dXJlSW5QaWN0dXJlKCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9yZWFkeVRvU3RvcFBpY3R1cmVJblBp
Y3R1cmUpIHsKLSAgICAgICAgaWYgKCFtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuaXNBY3Rp
dmUoKSkKLSAgICAgICAgICAgIG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lci5zdGFydE9uZVNo
b3Qoc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckludGVydmFsKTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBp
Y3R1cmVJblBpY3R1cmUpOworICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCAhbV9leGl0RnVsbHNjcmVlbk5lZWRz
RXhpdFBpY3R1cmVJblBpY3R1cmUpOwogCiAgICAgW21fcGxheWVyTGF5ZXJWaWV3IHNldEJhY2tn
cm91bmRDb2xvcjpjbGVhclVJQ29sb3IoKV07CiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVy
IHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpjbGVhclVJQ29sb3IoKV07CkBAIC0xMjEyLDIwICsx
MjExLDE0IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BQaWN0
dXJlSW5QaWN0dXJlKCkKIAogICAgIGlmIChtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVy
ZUluUGljdHVyZSkKICAgICAgICAgZG9FeGl0RnVsbHNjcmVlbigpOwotICAgIGVsc2UgaWYgKG1f
ZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKLSAgICAgICAgbV9leGl0aW5nUGljdHVyZUluUGlj
dHVyZSA9IGZhbHNlOwotCi0gICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAg
ICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUo
KTsKLSAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBh
cmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkICheY29t
cGxldGlvbkhhbmRsZXIpKEJPT0wgcmVzdG9yZWQpKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVGb3JQaWN0dXJlSW5QaWN0dXJl
U3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlciglcCkiLCB0aGlzKTsKIAotICAgIGlmIChtX3Nob3Vs
ZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpUCkgewotICAgICAgICBtX3Nob3VsZFJl
dHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpUCA9IGZhbHNlOworICAgIGlmIChtX3Nob3Vs
ZFJldHVyblRvRnVsbHNjcmVlbldoZW5TdG9wcGluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAg
ICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJlSW5QaWN0dXJl
ID0gZmFsc2U7CiAgICAgICAgIG1fcmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1
cmVTdG9wID0gdHJ1ZTsKIAogICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKQEAgLTEy
MzYsNiArMTIyOSwxMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVw
YXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbgogICAgICAgICAgICAgZW50
ZXJGdWxsc2NyZWVuSGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihzdWNjZXNzKTsKICAgICAgICAgfV07CisKKyAgICAgICAgaWYgKG1fc3RhbmRi
eSkgeworICAgICAgICAgICAgbV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSA9IHRydWU7Cisg
ICAgICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRBbGxvd3NQaWN0dXJlSW5QaWN0
dXJlUGxheWJhY2s6Tk9dOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTI4OSwxMCArMTI4OCwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihib29sIHZhbHVlKQogICAgICAgICBmaW5hbGl6ZVNl
dHVwKCk7CiAgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fY2xlYW51cE5lZWRz
UmV0dXJuVmlkZW9Db250ZW50TGF5ZXIpCiAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuKCk7Ci0g
ICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fcmV0dXJuVG9TdGFuZGJ5TmVlZHNS
ZXR1cm5WaWRlb0NvbnRlbnRMYXllcikKLSAgICAgICAgcmV0dXJuVG9TdGFuZGJ5KCk7Ci0gICAg
aWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1fZmluYWxpemVTZXR1cE5lZWRzUmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpCisgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1f
ZmluYWxpemVTZXR1cE5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIgJiYgIW1fcmVzdG9yaW5n
RnVsbHNjcmVlblN0YW5kYnkpCiAgICAgICAgIGZpbmFsaXplU2V0dXAoKTsKKyAgICBpZiAoIW1f
aGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9yZXN0b3JpbmdGdWxsc2NyZWVuU3RhbmRieSkKKyAg
ICAgICAgcmV0dXJuVG9TdGFuZGJ5KCk7CiAgICAgaWYgKCFtX2hhc1ZpZGVvQ29udGVudExheWVy
ICYmIG1fZXhpdEZ1bGxzY3JlZW5OZWVkc1JldHVybkNvbnRlbnRMYXllcikKICAgICAgICAgZG9F
eGl0RnVsbHNjcmVlbigpOwogfQpAQCAtMTMxOSw5ICsxMzE4LDcgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0SW5saW5lUmVjdChjb25zdCBJbnRSZWN0JiBpbmxpbmVS
ZWN0LCBib28KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9TZXR1cCgp
CiB7Ci0gICAgTW9kZSBjaGFuZ2VzIHsgbV9jdXJyZW50TW9kZS5tb2RlKCkgXiBtX3RhcmdldE1v
ZGUubW9kZSgpIH07Ci0KLSAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNWaWRlbygpICYmIG1fdGFy
Z2V0TW9kZS5oYXNWaWRlbygpKSB7CisgICAgaWYgKChtX2N1cnJlbnRNb2RlLmhhc1ZpZGVvKCkg
JiYgbV90YXJnZXRNb2RlLmhhc1ZpZGVvKCkpKSB7CiAgICAgICAgIG1fc3RhbmRieSA9IG1fdGFy
Z2V0U3RhbmRieTsKICAgICAgICAgZmluYWxpemVTZXR1cCgpOwogICAgICAgICByZXR1cm47CkBA
IC0xNDA4LDYgKzE0MDUsMTQgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
ZG9TZXR1cCgpCiAgICAgZmluYWxpemVTZXR1cCgpOwogfQogCit2b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCkKK3sK
KyAgICBpZiAoIW1fcmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVQaWN0dXJlSW5QaWN0dXJlLCB0cnVlKTsKK30KKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZmluYWxpemVTZXR1cCgpCiB7CiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0
aGlzXSB7CkBAIC0xNDg0LDcgKzE0ODksMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZG9FbnRlckZ1bGxzY3JlZW4oKQogICAgICAgICAgICAgc2l6ZSA9IEZsb2F0U2l6
ZSh2aWRlb0ZyYW1lLnNpemUoKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXItPmRpZEVudGVyRnVsbHNjcmVlbihzaXplKTsKKyAgICAgICAgbV9lbnRlcmlu
Z1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKICAgICB9CisKKyAgICBpZiAobV9jdXJyZW50TW9k
ZS5oYXNQaWN0dXJlSW5QaWN0dXJlKCkgJiYgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCAmJiAhbV9y
ZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApCisgICAgICAgIG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEVudGVyUGljdHVyZUluUGljdHVyZSgpOwogfQogCiB2b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKCkKQEAgLTE1
MDksNyArMTUxOCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvRXhp
dEZ1bGxzY3JlZW4oKQogCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzTW9kZShIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSkgewogICAg
ICAgICBtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVyZSA9IHRydWU7Ci0g
ICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0gZmFsc2U7
CisgICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUlu
UGljdHVyZSA9IGZhbHNlOwogICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOk5PXTsKICAgICAg
ICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcFBpY3R1cmVJblBpY3R1cmVdOwogICAgICAg
ICByZXR1cm47CkBAIC0xNTM4LDcgKzE1NDcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yKgog
CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlk
RXhpdEZ1bGxzY3JlZW4oJXApIC0gJWQiLCB0aGlzLCBzdWNjZXNzKTsKIAotICAgIGNsZWFyTW9k
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7Cisg
ICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0
YW5kYXJkLCBmYWxzZSk7CiAKICAgICBpZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSkgewogICAgICAgICBbbV93aW5k
b3cgc2V0SGlkZGVuOllFU107CkBAIC0xNTY0LDggKzE1NzMsMTEgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3Ms
IE5TRXJyb3IKICAgICAgICAgV1RGTG9nQWx3YXlzKCItW0FWUGxheWVyVmlld0NvbnRyb2xsZXIg
ZW50ZXJGdWxsU2NyZWVuQW5pbWF0ZWQ6Y29tcGxldGlvbkhhbmRsZXI6XSBmYWlsZWQgd2l0aCBl
cnJvciAlcyIsIFtbZXJyb3IgbG9jYWxpemVkRGVzY3JpcHRpb25dIFVURjhTdHJpbmddKTsKIAog
ICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVy
RnVsbHNjcmVlblN0YW5kYXJkIC0gbGFtYmRhKCVwKSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpOwotICAgIFtt
X3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOworICAg
IGlmICghbV9zdGFuZGJ5KSB7CisgICAgICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQsICFtX2VudGVyRnVsbHNjcmVlbk5lZWRzRW50
ZXJGdWxsc2NyZWVuKTsKKyAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQ
bGF5YmFja0NvbnRyb2xzOllFU107CisgICAgfSBlbHNlCisgICAgICAgIFttX3BsYXllclZpZXdD
b250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpOT107CiAKICAgICBtX3Jlc3Rvcmlu
Z0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCA9IGZhbHNlOwogCkBAIC0xNTc1LDE2
ICsxNTg3LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVs
bHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yCiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRvU3RhbmRieSgpCiB7Ci0gICAgaWYgKG1faGFzVmlk
ZW9Db250ZW50TGF5ZXIgJiYgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKLSAgICAgICAg
bV9yZXR1cm5Ub1N0YW5kYnlOZWVkc1JldHVyblZpZGVvQ29udGVudExheWVyID0gdHJ1ZTsKLSAg
ICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPnJldHVyblZpZGVvQ29udGVudExheWVy
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX3JldHVyblRvU3RhbmRieU5lZWRz
UmV0dXJuVmlkZW9Db250ZW50TGF5ZXIgPSBmYWxzZTsKLQorICAgIG1fcmVzdG9yaW5nRnVsbHNj
cmVlblN0YW5kYnkgPSBmYWxzZTsKICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAg
W1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEhpZGRlbjpZRVNdOworCisgICAgaWYg
KG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQorICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlci0+ZGlkU2V0dXBGdWxsc2NyZWVuKCk7CiB9CiAKIE5PX1JFVFVSTl9EVUVfVE9fQVNT
RVJUIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndhdGNoZG9nVGltZXJGaXJl
ZCgpCkBAIC0xNTk1LDE0ICsxNjAzLDcgQEAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2F0Y2hkb2dUaW1lckZpcmVkKCkKICAgICBb
W21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gc2V0SGlkZGVuOllFU107CiB9CiAKLXZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJG
aXJlZCgpCi17Ci0gICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6c3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckZpcmVkKCVwKSAtIG5vdCByZWFkeSB0byBz
dG9wIHBpY3R1cmUtaW4tcGljdHVyZSBpbiAlZ3M7IGZvcmNpbmcgc3RvcCBwaWN0dXJlLWluLXBp
Y3R1cmUuIiwgdGhpcywgc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lckludGVydmFsLnZhbHVlKCkp
OwotICAgIG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lci5zdG9wKCk7Ci0gICAgY2xlYXJNb2Rl
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1
cmUpOwotfQotCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBzaG91bGROb3RpZnlNb2RlbCkKIHsKICAg
ICBpZiAoKG1fY3VycmVudE1vZGUubW9kZSgpICYgbW9kZSkgPT0gbW9kZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMTYxMCwxNyArMTYxMSwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZQogICAg
IG1fY3VycmVudE1vZGUuc2V0TW9kZShtb2RlKTsKICAgICAvLyBNb2RlOjptb2RlKCkgY2FuIGJl
IDMgKFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCB8IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0
dXJlSW5QaWN0dXJlKS4KICAgICAvLyBIVE1MVmlkZW9FbGVtZW50IGRvZXMgbm90IGV4cGVjdCBz
dWNoIGEgdmFsdWUgaW4gdGhlIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCgpIGNhbGxiYWNrLgotICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1v
ZGVsICYmIHNob3VsZE5vdGlmeU1vZGVsKQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
LT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQobW9kZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNs
ZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwg
Ym9vbCBzaG91bGROb3RpZnlNb2RlbCkKIHsKICAgICBpZiAoKH5tX2N1cnJlbnRNb2RlLm1vZGUo
KSAmIG1vZGUpID09IG1vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY3VycmVudE1vZGUu
Y2xlYXJNb2RlKG1vZGUpOwotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsICYmIHNob3VsZE5vdGlmeU1vZGVsKQogICAgICAgICBt
X3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQobV9jdXJyZW50TW9k
ZS5tb2RlKCkpOwogfQogCkBAIC0xNjI5LDIzICsxNjMwLDYgQEAgYm9vbCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6aXNQbGF5aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNv
bnN0CiAgICAgcmV0dXJuIGhhc01vZGUoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkgJiYgW3BsYXllckNvbnRyb2xsZXIo
KSBpc1BsYXlpbmddOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpz
ZXRSZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUoQk9PTCByZWFkeSkKLXsKLSAgICBpZiAobV9y
ZWFkeVRvU3RvcFBpY3R1cmVJblBpY3R1cmUgPT0gcmVhZHkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlID0gcmVhZHk7Ci0gICAgaWYgKG1fcmVh
ZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmIChtX3N0b3BQaWN0dXJlSW5Q
aWN0dXJlVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgbV9zdG9wUGljdHVyZUluUGlj
dHVyZVRpbWVyLnN0b3AoKTsKLSAgICAgICAgICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKLSAgICAgICAgICAgIG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCk7
Ci0gICAgfQotfQotCiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaXNQaWN0dXJlSW5QaWN0dXJlU3Vw
cG9ydGVkOwogCiB2b2lkIFdlYkNvcmU6OnNldFN1cHBvcnRzUGljdHVyZUluUGljdHVyZShib29s
IGlzU3VwcG9ydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggODIzNzM4
Nzg5YzFmODA2MWFkYjRiYzc3ZmFhNDcxNjk3YzkyMDUwMy4uYzhjMDQ3ZjBjYjFmMWRiN2JkYjU2
YzU5N2ZmM2E0NDdkZDYyODIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBA
IC0xMjgsOCArMTI4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVlbigp
IGZpbmFsOwogICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRp
ZENsZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmUoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9Jbmxp
bmUoKSBmaW5hbDsKKyAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpIGZpbmFs
OwogCiAgICAgLy8gVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQKICAgICB2b2lkIGhhc1ZpZGVv
Q2hhbmdlZChib29sKSBvdmVycmlkZTsKQEAgLTM2MCw3ICszNTksNyBAQCB2b2lkIFZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpkaWRDbGVhbnVwRnVsbHNjcmVlbigpCiAgICAgfSk7
CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmZ1bGxzY3JlZW5X
aWxsUmV0dXJuVG9JbmxpbmUoKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4
dDo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkKIHsKICAgICBBU1NFUlQoaXNVSVRocmVh
ZCgpKTsKICAgICBXZWJUaHJlYWRSdW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMp
LCB0aGlzXSAoKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaAppbmRleCBkYjVkODYzMzcyY2Iw
ZmY4NjAxOGRiYjI5MjYwMTBkZDNlMTM2MDc3Li5hOGYxMWU4NWY4ZmJjM2ViNjkzMjY1NWMyZDVk
YzMzM2M0YWRhMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCkBAIC03Myw3ICs3Myw3IEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0dXBGdWxsc2NyZWVuKE5TVmlldyYgbGF5
ZXJIb3N0ZWRWaWV3LCBjb25zdCBJbnRSZWN0JiBpbml0aWFsUmVjdCwgTlNXaW5kb3cgKnBhcmVu
dFdpbmRvdywgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29s
IGFsbG93c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjayk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBlbnRlckZ1bGxzY3JlZW4oKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRGdWxsc2Ny
ZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCwgTlNXaW5kb3cgKnBhcmVudFdpbmRvdyk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBleGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5h
bFJlY3QsIE5TV2luZG93ICpwYXJlbnRXaW5kb3cpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhbnVw
RnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW52YWxpZGF0ZSgpOwpAQCAt
ODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KICAgICBib29sIGhh
c01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNv
bnN0IHsgcmV0dXJuIG1fbW9kZSAmIG1vZGU7IH0KICAgICBib29sIGlzTW9kZShIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkgY29uc3QgeyByZXR1cm4gbV9t
b2RlID09IG1vZGU7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBi
b29sKTsKICAgICB2b2lkIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1BsYXlpbmdWaWRlb0lu
RW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCAzMGIx
NmZjZTUzMWZlYWVmOTg4OWIxZjkxMWRmN2U4ZGU0ZWNmYzZjLi5hYzQxMGJiNTM1NTNkOTY1Yjlm
ZTcxZjUwMmVhZTcwNDY4NDhjYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTQwNSw3ICs0
MDUsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0VmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIoVmlkZW9GdWxsc2NyZQogICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyID0gbWFrZVdlYWtQdHIob2JzZXJ2ZXIpOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYzo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRNb2Rl
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29sKQog
ewogICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBuZXdNb2Rl
ID0gbV9tb2RlIHwgbW9kZTsKICAgICBpZiAobV9tb2RlID09IG5ld01vZGUpCkBAIC00NzcsNyAr
NDc3LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmVudGVyRnVsbHNjcmVl
bigpCiAgICAgfQogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1
bGxzY3JlZW4oY29uc3QgSW50UmVjdCYgZmluYWxSZWN0LCBOU1dpbmRvdyAqcGFyZW50V2luZG93
KQorYm9vbCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmV4aXRGdWxsc2NyZWVuKGNvbnN0
IEludFJlY3QmIGZpbmFsUmVjdCwgTlNXaW5kb3cgKnBhcmVudFdpbmRvdykKIHsKICAgICBMT0co
RnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3JlZW4o
JXApLCBmaW5hbFJlY3Q6eyVkLCAlZCwgJWQsICVkfSwgcGFyZW50V2luZG93OiVwIiwgdGhpcywg
ZmluYWxSZWN0LngoKSwgZmluYWxSZWN0LnkoKSwgZmluYWxSZWN0LndpZHRoKCksIGZpbmFsUmVj
dC5oZWlnaHQoKSwgcGFyZW50V2luZG93KTsKIApAQCAtNDg5LDYgKzQ4OSw4IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpleGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBm
aW5hbFJlY3QsIE5TV2luCiAgICAgICAgIFttX3dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU9i
akMgZXhpdFBJUF07CiAgICAgZWxzZQogICAgICAgICBbbV93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VPYmpDIGV4aXRQSVBBbmltYXRpbmdUb1JlY3Q6ZmluYWxSZWN0IGluV2luZG93OnBhcmVu
dFdpbmRvd107CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWM6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmgKaW5kZXggYjIwMjhmYzI2YmYxY2ExYzk3MmJlNGNlODkwMTFjNjE2ZDUxZTQyMi4uZmVi
MGY2NDJkOGEwZmNlNDhhNDMzYWIzYjM0NTBiY2EwZjkyZTFlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5LmgKQEAgLTExMiw3ICsxMTIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRXhpdEZ1bGxz
Y3JlZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCkgZmluYWw7CiAg
ICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKLSAgICB2b2lkIGZ1
bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKSBmaW5hbDsKIAogICAgIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAgIFJlZjxQbGF5YmFja1Nlc3Npb25Nb2RlbENv
bnRleHQ+IG1fcGxheWJhY2tTZXNzaW9uTW9kZWw7CkBAIC0xMjcsNyArMTI2LDYgQEAgY2xhc3Mg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFZpZGVvRnVsbHNjcmVlbk0KIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHlDbGllbnQoKSB7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYXNWaWRlb0luUGljdHVy
ZUluUGljdHVyZURpZENoYW5nZShib29sIHZhbHVlKSA9IDA7CiB9OwogCkBAIC0xNzIsNiArMTcw
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZENsaWVudEZvckNvbnRleHQoUGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dChQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAKKyAgICB2b2lkIGVudGVyRnVsbHNj
cmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBoYXNWaWRl
b0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29sKTsKIAogICAgIC8vIE1lc3NhZ2VzIGZy
b20gVmlkZW9GdWxsc2NyZWVuTWFuYWdlcgpAQCAtMTgwLDggKzE3OSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBzZXRIYXNWaWRlbyhQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMo
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYpOwotICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyKTsKLSAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBleGl0RnVs
bHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SW50UmVj
dCBmaW5hbFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
Y2xlYW51cEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwogICAg
IHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CiAgICAg
dm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIpOwpAQCAtMjAxLDcgKzE5OSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaWRlb0xh
eWVyR3Jhdml0eShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hh
bmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7Ci0gICAg
dm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyKTsKIAogICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbW9ja1BpY3R1cmVJblBpY3R1
cmVXaW5kb3dTaXplIHsgRGVmYXVsdE1vY2tQaWN0dXJlSW5QaWN0dXJlV2luZG93V2lkdGgsIERl
ZmF1bHRNb2NrUGljdHVyZUluUGljdHVyZVdpbmRvd0hlaWdodCB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQxZjA2Y2M4ZThlMjUxOTc5YjU1MmE0M2Ez
MTY0NGZkMTI5MmE0NDYuLjQ0MTJlYjg1MTRmMDcwNWU1ZmEyZjUxY2Y0NTc5MmQ2YjFiZDllYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDggKzI1
LDEwIEBAIG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0
SGFzVmlkZW8oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIGJvb2wgaGFzVmlkZW8pCiAgICAgU2V0VmlkZW9EaW1lbnNpb25zKFdlYktpdDo6UGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUg
dmlkZW9EaW1lbnNpb25zKQogICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRChXZWJLaXQ6OlBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViS2l0OjpMYXllckhvc3Rp
bmdDb250ZXh0SUQgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBX
ZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zLCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0
b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2
aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3Rh
bmRieSkKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBFbnRlckZ1bGxzY3JlZW4oV2Vi
S2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCi0gICAgRXhp
dEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorI2VuZGlmCisgICAgRXhpdEZ1bGxz
Y3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQs
IFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogICAg
IFNldElubGluZVJlY3QoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQogICAg
IFNldEhhc1ZpZGVvQ29udGVudExheWVyKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkLCBib29sIHZhbHVlKQogICAgIENsZWFudXBGdWxsc2NyZWVuKFdl
YktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tCmluZGV4IDhjZmU4YzVkNzk3Mzg0ODg3OTI5YTYwNzkxODQwNGE4NmNj
ZDgxYTMuLmFjNmNiMTM2OGIxNGZhMjI0YzJlMzRmNWFkYjNlYTZhZDEzZDNiNzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubW0KQEAgLTI3NCwxMiArMjc0LDYgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgICAgIG1f
bWFuYWdlci0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKG1fY29udGV4dElkKTsKIH0KIAot
dm9pZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9J
bmxpbmUoKQotewotICAgIGlmIChtX21hbmFnZXIpCi0gICAgICAgIG1fbWFuYWdlci0+ZnVsbHNj
cmVlbldpbGxSZXR1cm5Ub0lubGluZShtX2NvbnRleHRJZCk7Ci19Ci0KIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTW9kZWxDb250ZXh0OjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJ
RChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgU3Ry
aW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9tYW5hZ2VyKQpAQCAtNjA3
LDExICs2MDEsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVs
bHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmkKICAgICB9CiB9CiAKLXZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0
KQordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBm
aW5hbFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKG1fY29udGV4dE1hcC5jb250YWlucyhjb250ZXh0SWQpKTsKLSAg
ICBpZiAoIW1fY29udGV4dE1hcC5jb250YWlucyhjb250ZXh0SWQpKQorICAgIGlmICghbV9jb250
ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgSW50UmVjdCBmaW5hbFdpbmRvd1JlY3Q7CkBAIC02MjQsMTMgKzYyMCwxNCBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZQogI2Vsc2UKICAgICAgICAgZGlkRXhpdEZ1bGxzY3JlZW4o
Y29udGV4dElkKTsKICNlbmRpZgorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZW5z
dXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuZXhpdEZ1bGxzY3JlZW4oZmluYWxSZWN0KTsKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5leGl0RnVsbHNjcmVl
bihmaW5hbFJlY3QpKTsKICNlbHNlCi0gICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuZXhp
dEZ1bGxzY3JlZW4oZmluYWxXaW5kb3dSZWN0LCBtX3BhZ2UtPnBsYXRmb3JtV2luZG93KCkpOwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLmV4aXRGdWxs
c2NyZWVuKGZpbmFsV2luZG93UmVjdCwgbV9wYWdlLT5wbGF0Zm9ybVdpbmRvdygpKSk7CiAjZW5k
aWYKIH0KIApAQCAtNzAyLDYgKzY5OSw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpjbGVhbnVwRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpCiAKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUo
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIHZpc2libGUs
IFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkKIHsKKyAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZSgpOworCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgSW50
UmVjdCBpbmxpbmVXaW5kb3dSZWN0OwogICAgIG1fcGFnZS0+cm9vdFZpZXdUb1dpbmRvdyhpbmxp
bmVSZWN0LCBpbmxpbmVXaW5kb3dSZWN0KTsKQEAgLTc0OSw3ICs3NDgsMTEgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJldHVyblZpZGVvQ29udGVudExheWVyKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHQKIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNl
dHVwRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQp
CiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBlbnRlckZ1bGxzY3JlZW4oY29udGV4
dElkKTsKKyNlbHNlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpEaWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisjZW5kaWYKIH0KIAogdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCkBAIC03ODIsNyArNzg1LDcgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFudXBGdWxsc2NyZWVuKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGUKICAgICBtb2RlbC0+c2V0TGF5ZXJIb3N0VmlldyhudWxs
cHRyKTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OkRpZENsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRN
b2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAg
IGludGVyZmFjZS0+c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGVOb25lLCBmYWxzZSk7CiAgICAgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQp
OwogfQogCkBAIC04MTEsMTUgKzgxNCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogewotICAgIG1f
cGFnZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci0gICAgaWYgKG1fY2xpZW50KQot
ICAgICAgICBtX2NsaWVudC0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci19Ci0KLXZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5s
aW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKLXsKLSAgICBi
b29sIGlzVmlld1Zpc2libGUgPSBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKTsKLSAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5XaWxsUmV0
dXJuVG9JbmxpbmUoY29udGV4dElkLCBpc1ZpZXdWaXNpYmxlKSk7CisgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUoY29udGV4dElkLCBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKSkpOwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4IDVi
NGEyNjBjOGE2MDI1MTJlZjNhMzljYWE0MTRiNzY3OWE1YjQ3MGYuLmE5ZTZlZGMwOWU4MzlmZDg0
ZjY1ZjYyMzliNGJiMDcyOTM5NDg1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlcklPUy5tbQpAQCAtNDI5LDcgKzQyOSw2IEBAIHN0YXRpYyBjb25zdCBOU1Rp
bWVJbnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKIEBpbnRlcmZhY2UgV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50
KQogLSAodm9pZClkaWRFbnRlclBpY3R1cmVJblBpY3R1cmU7Ci0tICh2b2lkKXByZXBhcmVUb0V4
aXRQaWN0dXJlSW5QaWN0dXJlOwogLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZTsKIEBl
bmQKIApAQCAtNDM5LDExICs0MzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYXJlbnQoV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9
CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5h
bAotICAgIHsKLSAgICAgICAgW21fcGFyZW50IHByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJl
XTsKLSAgICB9Ci0KICAgICB2b2lkIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdl
KGJvb2wgdmFsdWUpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAodmFsdWUpCkBAIC00NzUsNyAr
NDY5LDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuSW50ZXJhY3RpdmVU
cmFuc2l0aW9uPiBfaW50ZXJhY3RpdmVEaXNtaXNzVHJhbnNpdGlvbkNvb3JkaW5hdG9yOwogCiAg
ICAgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eUNsaWVudCBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50OwotICAgIEJPT0wgX2lu
UGljdHVyZUluUGljdHVyZTsKKyAgICBCT09MIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9t
UGljdHVyZUluUGljdHVyZTsKICAgICBCT09MIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0
dXJlSW5QaWN0dXJlOwogICAgIEJPT0wgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5Q
aWN0dXJlOwogCkBAIC02OTcsMTMgKzY5MSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcGFn
ZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAKICAgICAgICAgICAgIGlm
IChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFu
YWdlcikgewotICAgICAgICAgICAgICAgIEFTU0VSVCh2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5j
bGllbnQoKSA9PSBudWxscHRyKTsKICAgICAgICAgICAgICAgICB2aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLT5zZXRDbGllbnQoJl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQpOwotICAg
ICAgICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRl
cmZhY2UoKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZSkgeworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHIpIHsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0
b3BQaWN0dXJlSW5QaWN0dXJlKFlFUyk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9p
blBpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+cHJlcGFyZWRUb1Jlc3RvcmVGdWxsc2NyZWVuU3RhbmRieSgpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmICh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPmluUGlj
dHVyZUluUGljdHVyZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbW9k
ZWwgPSB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZW50ZXJGdWxsc2NyZWVuTmVlZHNFeGl0UGlj
dHVyZUluUGljdHVyZSA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbC0+
cmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwpAQCAtNzI3LDYgKzcyMCwxMCBAQCBwcml2YXRlOgogICAg
IGlmIChfZnVsbFNjcmVlblN0YXRlICE9IFdlYktpdDo6Tm90SW5GdWxsU2NyZWVuKQogICAgICAg
ICByZXR1cm47CiAKKyAgICAvLyBTd2l0Y2ggdGhlIGFjdGl2ZSB0YWIgaWYgbmVlZGVkCisgICAg
aWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0uZ2V0KCkpCisgICAgICAgIHBh
Z2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAgICAgaWYgKGF1dG8qIG1hbmFn
ZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFbnRlckZ1bGxT
Y3JlZW4oKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNzU5LDYgKzc1Niw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IFdlYktpdDo6V2Fp
dGluZ1RvRXhpdEZ1bGxTY3JlZW47CisgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gWUVTOwogCiAg
ICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXIt
PnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4odHJ1ZSk7CkBAIC04MjksMTIgKzgyNyw4IEBAIHByaXZh
dGU6CiAgICAgICAgIG1hbmFnZXItPmRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgfQogCi0gICAg
aWYgKCFfaW5QaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAgICAg
ICAgQVNTRVJUKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Q2xpZW50IHx8IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVu
dCgpID09IG51bGxwdHIpOwotICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+c2V0
Q2xpZW50KG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgfQorICAgIGF1dG8qIHZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZSA9IHNlbGYuX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyBzZWxmLl92aWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7
CisgICAgX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+aW5QaWN0
dXJlSW5QaWN0dXJlKCk7CiAKICAgICBbX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKICAgICBfd2lu
ZG93ID0gbmlsOwpAQCAtODYyLDcgKzg1Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9
KTsKIAotICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgYXV0
byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXS5nZXQoKTsKKyAgICBpZiAocGFnZSAmJiBw
YWdlLT5pc1ZpZXdGb2N1c2VkKCkpCiAgICAgICAgIHBhZ2UtPmZvcmNlUmVwYWludChfcmVwYWlu
dENhbGxiYWNrLmNvcHlSZWYoKSk7CiAgICAgZWxzZQogICAgICAgICBfcmVwYWludENhbGxiYWNr
LT5wZXJmb3JtQ2FsbGJhY2soKTsKQEAgLTkwMiwzOSArODk3LDMwIEBAIHByaXZhdGU6CiAKIC0g
KHZvaWQpZGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVy
ZSA9IFlFUzsKLSAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwotfQotCi0tICh2b2lk
KXByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgaWYgKF9lbnRlckZ1bGxzY3Jl
ZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRv
KiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
ID8gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNl
KCkgOiBudWxscHRyOwotCi0gICAgaWYgKCF2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0
b3BQaWN0dXJlSW5QaWN0dXJlKE5PKTsKLSAgICBfcmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1
cmVJblBpY3R1cmUgPSBZRVM7Ci0KLSAgICBpZiAoIV9leGl0aW5nRnVsbFNjcmVlbikKLSAgICAg
ICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl07Ci0gICAgZWxzZQotICAgICAgICBfZW50
ZXJSZXF1ZXN0ZWQgPSBZRVM7CisgICAgX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0
dXJlSW5QaWN0dXJlID0gWUVTOworICAgIGlmIChfZnVsbFNjcmVlblN0YXRlID09IFdlYktpdDo6
SW5GdWxsU2NyZWVuKQorICAgICAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwogfQog
CiAtICh2b2lkKWRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGlj
dHVyZSA9IE5POwotICAgIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJl
ID0gTk87Ci0gICAgaWYgKCFbc2VsZiBpc0Z1bGxTY3JlZW5dKSB7Ci0gICAgICAgIGlmIChhdXRv
KiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikg
ewotICAgICAgICAgICAgQVNTRVJUKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09
ICZfdmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KTsKLSAgICAgICAgICAgIHZpZGVv
RnVsbHNjcmVlbk1hbmFnZXItPnNldENsaWVudChudWxscHRyKTsKKyAgICBpZiAoIV9lbnRlckZ1
bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIF9zaG91bGRSZXR1cm5Ub0Z1bGxz
Y3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkgeworICAgICAgICBhdXRvKiB2aWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2UgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5fdmlkZW9G
dWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOwor
ICAgICAgICBpZiAodmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZS0+cmVzdG9yaW5nRnVsbHNjcmVlblN0YW5kYnkoKSkgeworICAgICAgICAgICAgaWYg
KCFfZXhpdGluZ0Z1bGxTY3JlZW4pIHsKKyAgICAgICAgICAgICAgICBpZiAoX2Z1bGxTY3JlZW5T
dGF0ZSA9PSBXZWJLaXQ6OkluRnVsbFNjcmVlbikKKyAgICAgICAgICAgICAgICAgICAgdmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlLT5wcmVwYXJlZFRvUmVzdG9yZUZ1bGxzY3JlZW5TdGFuZGJ5KCk7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBbc2VsZiByZXF1ZXN0
RW50ZXJGdWxsU2NyZWVuXTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIF9l
bnRlclJlcXVlc3RlZCA9IFlFUzsKKworICAgICAgICAgICAgX3JldHVyblRvRnVsbHNjcmVlbkZy
b21QaWN0dXJlSW5QaWN0dXJlID0gWUVTOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgfQorCisgICAgX2VudGVyRnVsbHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmUg
PSBOTzsKIH0KIAogI3ByYWdtYSBtYXJrIC0KQEAgLTEwMDEsOSArOTg3LDExIEBAIHByaXZhdGU6
CiAKIC0gKHZvaWQpX2V4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkKIHsKLSAgICBpZiAoIVtzZWxm
IGlzRnVsbFNjcmVlbl0pCisgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgPT0gV2ViS2l0OjpOb3RJ
bkZ1bGxTY3JlZW4pCiAgICAgICAgIHJldHVybjsKIAorICAgIF9zaG91bGRSZXR1cm5Ub0Z1bGxz
Y3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworCiAgICAgYXV0byogbWFuYWdlciA9
IHNlbGYuX21hbmFnZXI7CiAgICAgaWYgKG1hbmFnZXIpCiAgICAgICAgIG1hbmFnZXItPnJlcXVl
c3RFeGl0RnVsbFNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA0NGYwNzcxZTY4
OTM5M2NkMWQwMmFmNTI3ZTgyODAzNGMyM2I4YWIxLi40YTA2OWNlOGIzYjQ4OWMwYmNjNTA1ZDlj
NTEwZmE1MDE0YmQyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtNjQsMTAgKzY0LDYg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFyZW50KFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCiBwcml2YXRlOgotICAgIHZvaWQg
ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmluYWwKLSAgICB7Ci0gICAgfQotCiAgICAg
dm9pZCBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZShib29sIHZhbHVlKSBmaW5h
bAogICAgIHsKICAgICAgICAgaWYgKHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBk
MDJlZjgyM2VmZTI2OTI1MmQ4YzFiNDM1NTUxZmI3MzEzMDU0ODQ3Li5mZWRjM2RiMTBhZDc3M2Jk
NTUzNjMyNmZhYjFjMTc0MDg1Y2IxNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAw
OSw5ICsxMDA5LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGUKICAgICBtX3BhZ2UudmlkZW9G
dWxsc2NyZWVuTWFuYWdlcigpLmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZp
ZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVv
RWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3BhZ2UudmlkZW9G
dWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlk
ZW9FbGVtZW50KTsKKyAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50LCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCBjNmY4YjlkZTZhNzBlZjIzN2QxZjQ4Y2VjYjQwMTEzNTc3NTUyOTllLi4xNzFm
YTYzMzNkY2UzMjNjMDBjNzhjZWJkZTI3M2YwMGU2YzkwZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0yNzUsNyArMjc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxs
c2NyZWVuU3RhbmRieSgpIGZpbmFsOwogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9u
TW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFs
OwotICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pIGZpbmFsOwogICAgIHZvaWQgc2V0
VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JikgZmlu
YWw7CiAgICAgdm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgZmluYWw7CiAgICAg
dm9pZCBwbGF5YmFja0NvbnRyb2xzTWVkaWFFbmdpbmVDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaAppbmRleCBiMWQ5ZGI4YTFmMzlkZDBhZGRjOTQyMDNiMmZlM2M3MDY3ZmY5OTFiLi5kNGQx
OTIzNDYxNjUyMGUwY2E0MmVkZDdiMTBjNmNlMjRjZDU0YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xMDMsNyArMTA0LDcg
QEAgcHJpdmF0ZToKICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBtX21hbmFnZXI7CiAgICAg
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgbV9jb250ZXh0SWQ7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKLSAg
ICBBbmltYXRpb25UeXBlIG1fYW5pbWF0aW9uVHlwZSB7IGZhbHNlIH07CisgICAgQW5pbWF0aW9u
VHlwZSBtX2FuaW1hdGlvblR5cGUgeyBBbmltYXRpb25UeXBlOjpOb25lIH07CiAgICAgYm9vbCBt
X3RhcmdldElzRnVsbHNjcmVlbiB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1fZnVsbHNjcmVlbk1vZGUgeyBXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lIH07CiAgICAg
Ym9vbCBtX2Z1bGxzY3JlZW5TdGFuZGJ5IHsgZmFsc2UgfTsKQEAgLTEyMyw3ICsxMjQsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGNvbnN0OwogICAgIGJvb2wgc3Vw
cG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3Q7CiAgICAgdm9pZCBlbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0
YW5kYnkpOwotICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pOwogICAgIHZvaWQgZXhpdFZpZGVv
RnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7
CiAKIHByb3RlY3RlZDoKQEAgLTE0OSw3ICsxNTAsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBy
ZXF1ZXN0VXBkYXRlSW5saW5lUmVjdChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7
CiAgICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOworI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
KTsKKyNlbmRpZgogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbihQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRTaXpl
Pik7CkBAIC0xNTcsNyArMTYwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0VmlkZW9MYXll
ckZyYW1lRmVuY2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpG
bG9hdFJlY3QgYm91bmRzLCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmKTsKICAgICB2b2lkIHNl
dFZpZGVvTGF5ZXJHcmF2aXR5RW51bShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwg
dW5zaWduZWQgZ3Jhdml0eSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7Ci0gICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRv
SW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2li
bGUpOworICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGFnZVZpc2libGUpOwogICAgIHZvaWQgcmVxdWVz
dFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVT
aGFyaW5nUG9saWN5QW5kQ29udGV4dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBXZWJQYWdlKiBt
X3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDVkNzg5ODdhMmMw
YmI5OGEwMzQ0OGQ1YTY1MGIyNjgwZmEyMWUwOGQuLmJkN2JiYTU3MjFkZDE0MmJhYzU0MmJjODkx
ZDc1YzJiZTRiMTlhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0y
Niw3ICsyNiw5IEBAIG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFJl
cXVlc3RVcGRhdGVJbmxpbmVSZWN0KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIgY29udGV4dElkKQogICAgIFJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihXZWJLaXQ6OlBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBSZXR1cm5WaWRl
b0NvbnRlbnRMYXllcihXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZCkKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEaWRTZXR1cEZ1bGxzY3Jl
ZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCisj
ZW5kaWYKICAgICBXaWxsRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAgRGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiAgICAgRGlkRW50ZXJG
dWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFNpemU+IHNpemUpCkBAIC0zNCw3ICszNiw3IEBA
IG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIFNldFZpZGVvTGF5ZXJG
cmFtZUZlbmNlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgTWFjaFNlbmRSaWdodCBtYWNoU2VuZFJp
Z2h0KQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShXZWJLaXQ6OlBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgdW5zaWduZWQgZ3Jhdml0eSkKICAgICBGdWxs
c2NyZWVuTW9kZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQotICAgIEZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9J
bmxpbmUoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQs
IGJvb2wgaXNQYWdlVmlzaWJsZSkKKyAgICBGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoV2Vi
S2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQ
YWdlVmlzaWJsZSkKICAgICBSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChX
ZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkgLT4gKGVu
dW06dWludDhfdCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5
LCBTdHJpbmcgcm91dGluZ0NvbnRleHRVSUQpIEFzeW5jCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KaW5kZXggZjdmYTc1OWU5ZWViMWI2Y2JkMTkyZDY5MDY0ZjY2N2U0OGJhNWNkMC4uOGNlZThm
OGRiM2ViZmQzN2YwMWVlZjdhNWY0ZmM0M2E1NGVkMjFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAg
LTI1Nyw3ICsyNTcsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICBhdXRvIHZpZGVv
UmVjdCA9IGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KTsKICAgICBGbG9hdFJlY3Qgdmlk
ZW9MYXllckZyYW1lID0gRmxvYXRSZWN0KDAsIDAsIHZpZGVvUmVjdC53aWR0aCgpLCB2aWRlb1Jl
Y3QuaGVpZ2h0KCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1
ZSk7CisgICAgaWYgKG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlTm9uZSkKKyAgICAgICAgaW50ZXJmYWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4odHJ1
ZSk7CisgICAgZWxzZQorICAgICAgICBpbnRlcmZhY2UtPnNldFRhcmdldElzRnVsbHNjcmVlbihm
YWxzZSk7CisKICAgICBpbnRlcmZhY2UtPnNldEZ1bGxzY3JlZW5Nb2RlKG1vZGUpOwogICAgIGlu
dGVyZmFjZS0+c2V0RnVsbHNjcmVlblN0YW5kYnkoc3RhbmRieSk7CiAgICAgbW9kZWwtPnNldFZp
ZGVvRWxlbWVudCgmdmlkZW9FbGVtZW50KTsKQEAgLTI4OCw3ICsyOTIsNyBAQCB2b2lkIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhU
TUxWaWRlb0VsZW1lbgogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2Ut
PmxheWVySG9zdGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgRmxvYXRTaXpl
KHZpZGVvRWxlbWVudC52aWRlb1dpZHRoKCksIHZpZGVvRWxlbWVudC52aWRlb0hlaWdodCgpKSwg
bV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCks
IGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCVwKSIsIHRoaXMp
OwogICAgIEFTU0VSVChtX3BhZ2UpOwpAQCAtMjk2LDEyICszMDAsMjAgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNv
cmU6OkhUTUxWaWQKIAogICAgIGF1dG8gY29udGV4dElkID0gbV92aWRlb0VsZW1lbnRzLmdldCgm
dmlkZW9FbGVtZW50KTsKICAgICBhdXRvJiBpbnRlcmZhY2UgPSBlbnN1cmVJbnRlcmZhY2UoY29u
dGV4dElkKTsKLSAgICBpbnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKICAg
ICBpZiAoaW50ZXJmYWNlLmFuaW1hdGlvblN0YXRlKCkgIT0gVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQ29udGV4dDo6QW5pbWF0aW9uVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aW50ZXJmYWNlLnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRl
eHQ6OkFuaW1hdGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29udGV4
dElkLCBpbmxpbmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpKTsKKyAgICBtX3BhZ2UtPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0
RnVsbHNjcmVlbihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KSksIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHN1Y2Nlc3MpIG11
dGFibGUgeworICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGF1dG8mIGludGVyZmFjZSA9IGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpOworICAgICAgICBp
bnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKKyAgICAgICAgaW50ZXJmYWNl
LnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1h
dGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1
ZSk7CisgICAgfSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVv
RnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dCYgdmlkZW9FbGVtZW50LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgdGFyZ2V0TW9kZSkKQEAgLTM4OSwxOSArNDAxLDEzIEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoUGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50CiAgICAgfSk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwg
IlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbiglcCwgJXgpIiwgdGhp
cywgY29udGV4dElkKTsKIAogICAgIEFTU0VSVChtX3BhZ2UpOwogICAgIGF1dG8gW21vZGVsLCBp
bnRlcmZhY2VdID0gZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0
SWRdIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1
bGxzY3JlZW4oY29udGV4dElkKSk7Ci0gICAgfSk7Ci0jZWxzZQogICAgIENBTGF5ZXIqIHZpZGVv
TGF5ZXIgPSBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+cm9vdExheWVyKCk7CiAK
ICAgICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewpA
QCAtNDEwLDggKzQxNiw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBG
dWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyCiAgICAgICAgICAgICAg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVu
dGVyRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7Ci0jZW5kaWYK
IH0KKyNlbmRpZgogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNj
cmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiB7CkBAIC00
NDUsMTMgKzQ1MSwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVs
bHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcgogCiAgICAgdmlkZW9FbGVt
ZW50LT5kaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1cmUoc2l6ZS52YWx1ZU9yKFdl
YkNvcmU6OkZsb2F0U2l6ZSgpKSk7CiAKLSAgICBpZiAoaW50ZXJmYWNlLT50YXJnZXRJc0Z1bGxz
Y3JlZW4oKSkKKyAgICBpZiAoaW50ZXJmYWNlLT50YXJnZXRJc0Z1bGxzY3JlZW4oKSB8fCBpbnRl
cmZhY2UtPmZ1bGxzY3JlZW5TdGFuZGJ5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGV4
aXQgZnVsbHNjcmVlbiBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBh
biBhbmltYXRpb24uCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1lbnRdIHsKICAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRo
aXMtPmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7Cisg
ICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KCp2aWRlb0VsZW1lbnQsIFtdKGJvb2wpIHsgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw3
ICs0NzUsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVu
KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyCiAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CiAgICAgfSk7CiAjZWxzZQotICAgIG1vZGVs
LT53YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKKyAgICBt
b2RlbC0+d2FpdEZvclByZXBhcmVkRm9ySW5saW5lVGhlbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWZQdHIodGhpcyksIGNvbnRleHRJZCwgaW50ZXJmYWNlLCBtb2RlbF0oKSBtdXRhYmxlIHsKICAg
ICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZSwgbW9k
ZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0
SWQsIGludGVyZmFjZV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gewpAQCAtNTI2LDcgKzUzMiw3IEBA
IHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVuCiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZXRW
aWRlb0xheWVyR3Jhdml0eSgoTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KWdyYXZpdHkp
OwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJu
VG9JbmxpbmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29s
IGlzUGFnZVZpc2libGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIGJvb2wgaXNQYWdlVmlzaWJsZSkKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBiZjI5YmVjZTc1NWU2ZjU1MWZjM2NjZjQ3NzJkNzZk
MDU2NTYyOTY4Li4zN2M4NjI2NjA5YTFlNjJjZmE3N2VhNmY4NDkyNzU1OWViYjRhMDA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMjA1LDcgKzIwNSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9u
TW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFs
OwotICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pIGZpbmFsOwogICAgIHZvaWQgZXhp
dFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSkgZmluYWw7CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGUxMTgy
YmQ0ZDU5NDBmMzUxYjc2ZjhjZjA0MThhN2RlZTM5YzI5MTEuLjZmZDdhMjY1MzIxNTVjOWM4ZDU3
NTM2NTUxNGU0ZjRhMWE4Y2I4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTk5MywxNCArOTkz
LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCiAg
ICAgICAgIHZpZGVvRWxlbWVudC5kaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwogICAg
IGVsc2UKICAgICAgICAgW21fd2ViVmlldyBfZXhpdFZpZGVvRnVsbHNjcmVlbl07Ci0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CisgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVt
ZW50JiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSB0YXJnZXRNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZTUzMTA5M2QyOTUxM2Jj
OWNkOTg1NzMxM2VjYWM0MjMyZmYyYTdmYS4uZjc0NWRkNDU5YzE2YjE2NDVkYTA0ZGY1MzFhOGZi
MjIyY2Y0NmRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NzYsOSArNzc2LDEwIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChI
VE1MVmlkZW9FbGVtZW50JiB2aWRlCiAgICAgbV93ZWJWaWV3LT5lbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudCh2aWRlb0VsZW1lbnQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2
aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV93ZWJWaWV3
LT5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7CisgICAg
Y29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCBhYzVjZGQyN2U3MzgzMDU4YmY5NTczZTFiMGU1NGM0Zjc1OTcwZWQ3Li45NjAxOWVhODU0ODE2
ZjkyOGZkNDhhNThkMzJjYzYyYmQyYzYxMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTQ5LDcg
KzE0OSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU8pCiAgICAgYm9vbCBzdXBwb3J0c1Zp
ZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpIGZpbmFsOwogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBleGl0
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQm
KSBmaW5hbDsKKyAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiA9IFtdKGJvb2wpIHsgfSkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413477</attachid>
            <date>2020-11-06 14:03:10 -0800</date>
            <delta_ts>2020-11-06 21:23:40 -0800</delta_ts>
            <desc>Update change logs</desc>
            <filename>bug-218419-20201106140309.patch</filename>
            <type>text/plain</type>
            <size>80748</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzNTZkYTE2YTc0NjNi
MmE2NWUyZjdhYmZkNGE2N2Y5ZWY5NDE2My4uZTJhOGMxZDViMTIwZmYyNGI1ZDQzNTA0NzhjYTlk
Y2FiY2MwNGI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAyMC0xMS0wNSAgUGVu
ZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFBpUCByZXR1cm4gdG8gZWxl
bWVudCBmdWxsIHNjcmVlbiBpcyBub3Qgc21vb3RoIG9uIHNvbWUgd2Vic2l0ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODQxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyNjU1NjIsIHdlIGFk
ZGVkIHRoZSBzdXBwb3J0IHRoYXQgYSB2aWRlbyBpbiBwaWN0dXJlLWluLXBpY3R1cmUgY2FuIHJl
dHVybiB0bworICAgICAgICBlbGVtZW50IGZ1bGxzY3JlZW4gZGlyZWN0bHkgaWYgdGhlIGZ1bGxz
Y3JlZW4gQVBJIGlzIHN1cHBvcnRlZC4gVGhlIGJhc2ljIGlkZWEgb2YKKyAgICAgICAgdGhlIGlt
cGxlbWVudGF0aW9uIGlzIHRvIHJlcXVlc3QgdGhlIGVsZW1lbnQgdG8gZW50ZXIgZnVsbHNjcmVl
biB3aGVuIHRoZSB2aWRlbworICAgICAgICBuZWVkcyB0byBleGl0IHBpY3R1cmUtaW4tcGljdHVy
ZSwgYW5kIHN0YXJ0IGV4aXRpbmcgcGljdHVyZS1pbi1waWN0dXJlIGFmdGVyIHRoZQorICAgICAg
ICBlbGVtZW50IGZ1bGxzY3JlZW4gdHJhbnNpdGlvbiBpcyBjb21wbGV0ZWQuCisKKyAgICAgICAg
T24gdGhlIGlPUyBwb3J0LCB0aGUgZW50ZXJpbmcgZWxlbWVudCBmdWxsc2NyZWVuIHRyYW5zaXRp
b24gbmVlZHMgdG8gYmUgZG9uZSBpbgorICAgICAgICA1MDAgbXMuIE90aGVyd2lzZSwgQVZLaXQg
d2lsbCBzdGFydCB0aGUgZXhpdGluZyBwaWN0dXJlLWluLXBpY3R1cmUgYW5pbWF0aW9uIGFuZAor
ICAgICAgICBub3RpZnkgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQgYWJvdXQgdGhlIHBy
b2dyZXNzIGJlZm9yZSB0aGUgZWxlbWVudAorICAgICAgICBmdWxsc2NyZWVuIGltcGxlbWVudGF0
aW9uIGhhcyBkb25lIHRoZSBqb2IuIFdoZW4gdGhhdCBoYXBwZW5zLCB0aGUgZXhpdGluZworICAg
ICAgICBwaWN0dXJlLWluLXBpY3R1cmUgYW5pbWF0aW9uIHdpbGwgYmUgaW5jb3JyZWN0IGFuZCB3
ZSBoYXZlIHRvIHVzZSBtZWNoYW5pc21zIHRvCisgICAgICAgIHByb3RlY3QgdGhlIHN0YXRlIG9m
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LiBVbmZvcnR1bmF0ZWx5LCBvbiBzb21lIHdl
YnNpdGVzLAorICAgICAgICB0aGUgZW50ZXJpbmcgZWxlbWVudCBmdWxsc2NyZWVuIHRyYW5zaXRp
b24gZG9lcyB0YWtlIGxvbmdlciB0aGFuIHRoYW4gNTAwIG1zIGR1ZQorICAgICAgICB0byBjb21w
bGV4IENTUyBzdHlsZSB1cGRhdGVzLgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHdoZW4gYSB2
aWRlbyBpbiBwaWN0dXJlLWluLXBpY3R1cmUgbmVlZHMgdG8gcmV0dXJuIHRvIGVsZW1lbnQKKyAg
ICAgICAgZnVsbHNjcmVlbiwgaXQgd2lsbCByZXR1cm4gdG8gYSBgdGVtcG9yYXJ5YCBmdWxsc2Ny
ZWVuIHN0YXRlICh2aWRlbyBmdWxsc2NyZWVuKQorICAgICAgICB3aXRoIGEgc21vb3RoIGFuaW1h
dGlvbiBpbXBsZW1lbnRlZCBieSBBVktpdC4gVGhlIHZpZGVvIHdpbGwgY29udGludWUgcGxheWlu
ZworICAgICAgICBpbiB0aGUgdGVtcG9yYXJ5IGZ1bGxzY3JlZW4gc3RhdGUgd2hpbGUgdGhlIGVs
ZW1lbnQgZnVsbHNjcmVlbiB0cmFuc2l0aW9uIGlzCisgICAgICAgIGhhcHBlbmluZyBpbiB0aGUg
YmFja2dyb3VuZCB3aGljaCBpcyBpbnZpc2libGUgdG8gdXNlcnMuIEFmdGVyIHRoZSBlbGVtZW50
CisgICAgICAgIGZ1bGxzY3JlZW4gdHJhbnNpdGlvbiBpcyBkb25lLCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdCBleGl0cyB0aGUgdGVtcG9yYXJ5CisgICAgICAgIGZ1bGxzY3JlZW4gc3Rh
dGUgYW5kIHJldHVybnMgdG8gc3RhbmRieS4gVXNlcnMgd29uJ3Qgbm90aWNlIHRoZSB0ZW1wb3Jh
cnkKKyAgICAgICAgZnVsbHNjcmVlbiBzdGF0ZSBiZWNhdXNlIG1lZGlhIGNvbnRyb2xzIGFyZSBo
aWRkZW4gaW4gdGhhdCBzdGF0ZS4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgaXNz
dWVzIGZvdW5kIGluIHN0cmVzcyB0ZXN0cy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpleGl0RnVsbHNj
cmVlbik6CisgICAgICAgIEZvciBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1h
dGlvbigpLCB3ZSBzaG91bGQgbm90IHNldAorICAgICAgICBgbV9jaGFuZ2luZ1ZpZGVvRnVsbHNj
cmVlbk1vZGVgIHRvIHRydWUsIGJlY2F1c2UgdGhlcmUgd29uJ3QgYmUgY29uZmlybWF0aW9uCisg
ICAgICAgIHRvIHJlc2V0IG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRvIGZhbHNlLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuU3Rh
bmRieSk6CisgICAgICAgIFdoZW4gdGhlIGV4aXQgZnVsbHNjcmVlbiByZXF1ZXN0IGlzIHJlamVj
dGVkLCB3ZSBzaG91bGQgbm90IHNldAorICAgICAgICBgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5
YCB0byBmYWxzZS4KKworICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRTZXRQcmVzZW50YXRpb25Nb2Rl
KToKKyAgICAgICAgT25seSBwcm90ZWN0IHRvbyBmYXN0IHNldFByZXNlbnRhdGlvbk1vZGUoKSBj
YWxscyBmcm9tIEpTIGNvZGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojpz
ZXRQcmVzZW50YXRpb25Nb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ6
OmRpZEVudGVyRnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50OjpkaWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5G
cmFtZSk6CisgICAgICAgIFJlbmFtZSBgbV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZWAgdG8g
YG1fZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlYAorICAgICAgICBhbmQgYG1faXNFeGl0aW5nUGlj
dHVyZUluUGljdHVyZWAgdG8gYG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmVgLgorICAgICAgICAq
IGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICBBZGQgYSBjb21wbGV0aW9uIGhhbmRsZXIg
cGFyYW1ldGVyIHNvIHRoYXQgdGhlIGNhbGxlciBjYW4gYmUgbm90aWZpZWQKKyAgICAgICAgdGhh
dCB0aGUgcmVxdWVzdCBpcyByZWplY3RlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmg6CisgICAgICAgIFJlbW92ZSBhbiB1bnVzZWQg
ZnVuY3Rpb24gYGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKWAuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ6OnByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJl
KTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oOgorICAgICAgICBGdW5jdGlvbiBgZXhpdEZ1bGxzY3JlZW4oKWAgbm93IHJl
dHVybnMgYSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgdGhlIHJlcXVlc3QKKyAgICAgICAgaXMg
YWNjZXB0ZWQgb3IgcmVqZWN0ZWQuCisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIGBwcmVwYXJlZFRv
UmV0dXJuVG9TdGFuZGJ5KClgLCB3aGljaCBpcyB1c2VkIHRvIG5vdGlmeQorICAgICAgICBWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCB0aGF0IHRoZSB2aWRlbyBpcyByZWFkeSB0byByZXR1
cm4gdG8gc3RhbmRieS4KKyAgICAgICAgQWRkIGEgcGFyYW1ldGVyIGBzaG91bGROb3RpZnlNb2Rl
bGAgdG8gYHNldE1vZGUoKWAgYW5kIGBjbGVhck1vZGUoKWAuCisgICAgICAgIGBzaG91bGROb3Rp
ZnlNb2RlbGAgaXMgYHRydWVgIHdoZW4gYSByZXF1ZXN0IHRvIGVudGVyL2V4aXQgcGljdHVyZS1p
bi1waWN0dXJlCisgICAgICAgIGlzIGZyb20gQVZLaXQuCisgICAgICAgIFJlbW92ZSB1bnVzZWQg
YG1fc3RvcFBpY3R1cmVJblBpY3R1cmVUaW1lcmAgYW5kIHRoZSByZWxhdGVkIGZ1bmN0aW9uLgor
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
OgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0KToKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBgbV9zdG9wUGljdHVyZUlu
UGljdHVyZVRpbWVyYC4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpl
eGl0RnVsbHNjcmVlbik6CisgICAgICAgIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgd2hldGhlciBg
bV93YXRjaGRvZ1RpbWVyYCBpcyBhY3RpdmUgYmVmb3JlIHN0b3BwaW5nIGl0LgorICAgICAgICBX
aGVuIGEgdmlkZW8gaXMgZW50ZXJpbmcgcGljdHVyZS1pbi1waWN0dXJlLCB3ZSBzaG91bGQgcmVq
ZWN0IHRoZSByZXF1ZXN0IHRvCisgICAgICAgIGV4aXQgZnVsbHNjcmVlbi4KKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbik6IFJlbW92ZSB1
bnVzZWQgY29kZS4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjppbnZh
bGlkYXRlKTogRml4IGFuIGlzc3VlIGluIHN0cmVzcyB0ZXN0cy4KKyAgICAgICAgKFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3ApOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0YXJ0UGljdHVyZUlu
UGljdHVyZSk6CisgICAgICAgIFdoZW4gYSB2aWRlbyBpcyBlbnRlcmluZyBwaWN0dXJlLWluLXBp
Y3R1cmUgZnJvbSBzdGFuZGJ5LCB3ZSBtYXkgbmVlZCB0byByZXR1cm4KKyAgICAgICAgdG8gZWxl
bWVudCBmdWxsc2NyZWVuIGluIHRoZSBmdXR1cmUuIFNvIHdlIG1heSBuZWVkIHRvIHJldHVybiB0
byB0aGUgdmlkZW8KKyAgICAgICAgZnVsbHNjcmVlbiBzdGF0ZSBpbXBsZW1lbnRlZCBieSBBVktp
dC4KKyAgICAgICAgQWxzbywgd2Ugc2hvdWxkIGRlbGF5IHRoZSBgZGlkRW50ZXJQaWN0dXJlSW5Q
aWN0dXJlYCBub3RpZmljYXRpb24gaW4gYGRvRW50ZXJGdWxsc2NyZWVuKClgCisgICAgICAgIHVu
dGlsIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0IGNvbXBsZXRlbHkgZW50ZXJzIHBpY3R1
cmUtaW4tcGljdHVyZS4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpm
YWlsZWRUb1N0YXJ0UGljdHVyZUluUGljdHVyZSk6IEEgbWlub3IgY2xlYW4tdXAuCisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BQaWN0dXJlSW5QaWN0dXJl
KTogQSBtaW5vciBjbGVhbi11cC4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpkaWRTdG9wUGljdHVyZUluUGljdHVyZSk6CisgICAgICAgIE5vdGlmeSB0aGUgb2JzZXJ2
ZXIgdGhhdCBhIHZpZGVvIGhhcyBleGl0ZWQgcGljdHVyZS1pbi1waWN0dXJlLiBJZiB0aGUgdmlk
ZW8gbmVlZHMgdG8KKyAgICAgICAgcmV0dXJuIHRvIGVsZW1lbnQgZnVsbHNjcmVlbiwgdGhlIHZp
ZGVvIGlzIGFjdHVhbGx5IGluIHRoZSB0ZW1wb3JhcnkgZnVsbHNjcmVlbiBzdGF0ZS4KKyAgICAg
ICAgQWxzbywgbW92ZSBgZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKWAgdG8gYGNsZWFudXBGdWxs
c2NyZWVuKClgLgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBh
cmVGb3JQaWN0dXJlSW5QaWN0dXJlU3RvcFdpdGhDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAg
IE1pbm9yIGNsZWFuLXVwIGFuZCBkaXNhYmxlIHBpY3R1cmUtaW4tcGljdHVyZSBzdXBwb3J0IHRl
bXBvcmFyaWx5LiBFeHBsYWluZWQgaW4KKyAgICAgICAgV2ViS2l0L0NoYW5nZUxvZy4KKyAgICAg
ICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRIYXNWaWRlb0NvbnRlbnRMYXll
cik6CisgICAgICAgIFdoZW4gYSB2aWRlbyBpcyBlbnRlcmluZyBzdGFuZGJ5IHN0YXRlLCB3ZSBu
ZWVkIHRvIGNhbGwgYHJldHVyblRvU3RhbmRieSgpYCBpZgorICAgICAgICBgbV9yZXR1cm5pbmdU
b1N0YW5kYnlgIGlzIHRydWUuCisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZG9TZXR1cCk6IFJlbW92ZSB1bnVzZWQgY29kZS4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9TdGFuZGJ5KToKKyAgICAgICAgUmV0
dXJuIHRvIHN0YW5kYnkgYWZ0ZXIgdGhlIGVsZW1lbnQgZnVsbHNjcmVlbiB0cmFuc2l0aW9uIGlz
IGNvbXBsZXRlZC4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0Vu
dGVyRnVsbHNjcmVlbik6CisgICAgICAgIE1vdmUgYG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRp
ZEVudGVyUGljdHVyZUluUGljdHVyZSgpYCBmcm9tIGBkaWRTdGFydFBpY3R1cmVJblBpY3R1cmUo
KWAKKyAgICAgICAgdG8gdGhpcyBmdW5jdGlvbi4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2NyZWVuKTogTWlub3IgY2xlYW4tdXAuCisgICAgICAg
IChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW5IYW5kbGVyKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5I
YW5kbGVyKToKKyAgICAgICAgSGlkZSB0aGUgbWVkaWEgY29udHJvbHMgcHJvdmlkZWQgYnkgQVZL
aXQgd2hlbiB0aGUgdmlkZW8gaXMgaW4gdGhlIHRlbXBvcmFyeSBmdWxsc2NyZWVuIHN0YXRlLgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRvU3RhbmRieSk6
CisgICAgICAgIENhbGwgYGRpZFNldHVwRnVsbHNjcmVlbigpYCB0byByZXR1cm4gdG8gc3RhbmRi
eS4KKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKToKKyAg
ICAgICAgKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhck1vZGUpOgorICAgICAg
ICAoVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGlt
ZXJGaXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKTogRGVsZXRlZC4KKworICAgICAgICAq
IHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAg
ICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZnVsbHNjcmVlbk1heVJldHVy
blRvSW5saW5lKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojpm
dWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRm
b3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpzZXRNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3JlZW4pOgorCiAyMDIwLTEx
LTA1ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBDTTog
U3dpdGNoIHRvIEpTT04gcmVwb3J0IGZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0Njk4ZDUzN2FlOTJkNDc3
YTAwODk5ZjM4OTQ0ZTUxOWYxM2EwN2JlLi5iZjYyMzIyZWZmMjY1ZmZmNTk5OWNiNzAwNGY1OTBl
YWNlZjE1ZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIwLTExLTA1ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQIHJldHVybiB0byBlbGVtZW50
IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJzaXRlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NDE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcjI2NTU2MiwgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQgdXNlcyBgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKClg
CisgICAgICAgIHRvIHJlcXVlc3QgdGhlIG9ic2VydmVyIChXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyKSB0byBlbnRlciBlbGVtZW50IGZ1bGxzY3JlZW4KKyAgICAgICAgYmVmb3JlIGV4aXRp
bmcgcGljdHVyZS1pbi1waWN0dXJlLCBhbmQgY2FsbHMgYGZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9J
bmxpbmUoKWAgdG8KKyAgICAgICAgcHJvY2VlZCByZXR1cm5pbmcgdG8gaW5saW5lIG9yIGVsZW1l
bnQgZnVsbHNjcmVlbiBhZnRlciBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCisgICAgICAg
IGlzIHJlYWR5LgorCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0IHdpbGwgZGlyZWN0bHkgZW50ZXIgYSB0ZW1wb3JhcnkKKyAgICAgICAgdmlkZW8g
ZnVsbHNjcmVlbiBmcm9tIHBpY3R1cmUtaW4tcGljdHVyZSwgc28gdGhlIHByZXBhcmF0aW9uIHN0
ZXAgKGVudGVyaW5nIGVsZW1lbnQKKyAgICAgICAgZnVsbHNjcmVlbikgaXMgbm90IG5lZWRlZC4K
KworICAgICAgICBTb21lIGltcG9ydGFudCBwb2ludHMgcmVnYXJkaW5nIGVkZ2UgY2FzZXM6Cisg
ICAgICAgIDEpIEEgdmlkZW8gZW50ZXJzIHBpY3R1cmUtaW4tcGljdHVyZSBhbmQgZXhpdHMgcGlj
dHVyZS1pbi1waWN0dXJlIGltbWVkaWF0ZWx5CisgICAgICAgIGJlZm9yZSBXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyIGlzIG5vdGlmaWVkIHRvIGV4aXQgZWxlbWVudCBmdWxsc2NyZWVuLgor
ICAgICAgICBJbiB0aGlzIGNhc2UsIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgd2lsbCBk
byBub3RoaW5nIHdoZW4gaXQgaXMgbm90aWZpZWQKKyAgICAgICAgdGhhdCB0aGUgdmlkZW8gaGFz
IGV4aXRlZCBwaWN0dXJlLWluLXBpY3R1cmUuIEl0IHdpbGwgZGlyZWN0bHkgdGVsbAorICAgICAg
ICBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCB0byBlbnRlciBzdGFuZGJ5LgorCisgICAg
ICAgIDIpIEEgdmlkZW8gZXhpdHMgcGljdHVyZS1pbi1waWN0dXJlIHdoZW4gV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciBpcyBleGl0aW5nCisgICAgICAgIGVsZW1lbnQgZnVsbHNjcmVlbiBi
dXQgbm90IGNvbXBsZXRlIHlldC4gSW4gdGhpcyBjYXNlLCBXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyCisgICAgICAgIG5lZWRzIHRvIGhvbGQgdGhlIGVudGVyIGVsZW1lbnQgZnVsbHNjcmVl
biByZXF1ZXN0IGFuZCBleGl0cyBlbGVtZW50IGZ1bGxzY3JlZW4KKyAgICAgICAgZmlyc3QgYmVm
b3JlIGVudGVyaW5nIGVsZW1lbnQgZnVsbHNjcmVlbi4KKworICAgICAgICAzKSBUaGUgYW5jZXN0
b3IgZWxlbWVudCBvZiB0aGUgdmlkZW8gZWxlbWVudCBleGl0cyBmdWxsc2NyZWVuIGFuZCBhc2tz
IHRoZSB2aWRlbworICAgICAgICBlbGVtZW50IHRvIGV4aXQgc3RhbmRieSAoaW4gd2ViIHByb2Nl
c3MpIHdoaWxlIHRoZSB2aWRlbyBpcyBlbnRlcmluZyBwaWN0dXJlLWluLXBpY3R1cmUKKyAgICAg
ICAgKGluIFVJIHByb2Nlc3MpLiBJbiB0aGlzIGNhc2UsIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0IChpbiBVSSBwcm9jZXNzKSBzaG91bGQKKyAgICAgICAgaWdub3JlIHRoZSByZXF1ZXN0
IHRvIGV4aXQgc3RhbmRieSBhbmQgdGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhlIHJlcXVlc3QgaXMg
cmVqZWN0ZWQuCisKKyAgICAgICAgNCkgQSB1c2VyIG1heSB0cnkgdG8gZW50ZXIgcGljdHVyZS1p
bi1waWN0dXJlIHdoZW4gdGhlIHZpZGVvIGlzIGV4aXRpbmcgcGljdHVyZS1pbi1waWN0dXJlCisg
ICAgICAgIGFuZCByZXR1cm5pbmcgdG8gZWxlbWVudCBmdWxsc2NyZWVuLiBJbiB0aGlzIGNhc2Us
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0CisgICAgICAgIChpbiBVSSBwcm9jZXNzKSBz
aG91bGQgdGVtcG9yYXJpbHkgZGlzYWJsZSB0aGUgcGljdHVyZS1pbi1waWN0dXJlIHN1cHBvcnQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgUmVtb3ZlIHRoZSBtZXNzYWdlIGBFbnRlckZ1bGxzY3Jl
ZW5gIGZvciB0aGUgaU9TIHBvcnQgYmVjYXVzZSB0aGUgVUkgcHJvY2VzcyBjYW4gZW50ZXIKKyAg
ICAgICAgZnVsbHNjcmVlbi9waWN0dXJlLWluLXBpY3R1cmUgZGlyZWN0bHkuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbik6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKToKKyAgICAgICAgV2UgbmVlZCB0byBjYWxsIGBtX3BhZ2UtPmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpYCBpbiB0aGlzIGZ1bmN0aW9uIGFmdGVyCisgICAgICAgIHJl
bW92aW5nIGBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKClgLgorICAgICAgICAoV2ViS2l0
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVwRnVsbHNjcmVlbik6CisgICAg
ICAgIEZvciB0aGUgaU9TIHBvcnQsIHdlIHNob3VsZCBlbnRlciBmdWxsc2NyZWVuIGRpcmVjdGx5
LgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFu
dXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1
bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW06Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3Jl
ZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgt
W1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX2NvbXBsZXRlZEV4aXRGdWxsU2NyZWVuXSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlkRW50ZXJQaWN0dXJl
SW5QaWN0dXJlXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZGlk
RXhpdFBpY3R1cmVJblBpY3R1cmVdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBfZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseV0pOgorICAgICAgICBXZSBzaG91bGQg
Zm9yY2UgdG8gZXhpdCBmdWxsc2NyZWVuIGJlY2F1c2UgdGhlIGN1cnJlbnQgZXhpdGluZyBmdWxs
c2NyZWVuIHByb2Nlc3MKKyAgICAgICAgbWlnaHQgYmUgc3R1Y2suCisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBpY3R1cmVdKTog
RGVsZXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5tbToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0Vmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisgICAgICAgIFRoZSBy
ZXF1ZXN0IHRvIGV4aXQgZnVsbHNjcmVlbiAoc3RhbmRieSkgbWF5IGJlIHJlamVjdGVkLgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4p
OgorICAgICAgICBPbmx5IHRoZSBtYWNPUyBwb3J0IG5lZWRzIHRvIGltcGxlbWVudCB0aGlzIGZ1
bmN0aW9uLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRl
ckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpk
aWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUpOiBEZWxldGVk
LgorCiAyMDIwLTExLTA1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFttYWNPU10gUmVtb3ZlIG1kbnNyZXNwb25kZXIgYWNjZXNzIGZyb20gV2ViS2l0IHBy
b2Nlc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGVkNzQ0ODgwMWZkNGU1ZGIx
MTY4MWRjMjZlZTZkMDEzMjcwMTAxOTEuLjIzOTkwN2Y3ZGJjNTUwNDU0ZTM2MjU3NDY0MWMyOWI3
ODNjZDFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0xMS0wNSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFBp
UCByZXR1cm4gdG8gZWxlbWVudCBmdWxsIHNjcmVlbiBpcyBub3Qgc21vb3RoIG9uIHNvbWUgd2Vi
c2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODQxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6CisKIDIwMjAtMTEtMDQgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBN
b3ZlIHRoZSBpbnRlcm5hbCBHUFUgcmVuZGVyaW5nIGZsYWdzIGZyb20gV2ViUGFnZSB0byBXZWJQ
cm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggOWI2YzgyMWQwNWRkMTllMjcx
Y2U5ZGU4ODIyZmU4NDVhNTUyZmM2OC4uNmQ4MDQ1YWQ3NjRkODY5NDUxMzM4ZDYyNjEwMjg2NGZk
YmFhODk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTExLTA1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgUGlQ
IHJldHVybiB0byBlbGVtZW50IGZ1bGwgc2NyZWVuIGlzIG5vdCBzbW9vdGggb24gc29tZSB3ZWJz
aXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4
NDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1
cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAppbmRleCAyZWNjNzdiNzRhMDljZmEwMjYwMTY1MDc0MzkxMjA4Njg2OTA1MjcwLi4x
NGMzOTc3Y2IxZmM4YmU2Yzg3YTBmMmZkZTgyMmJkMTMwNDBmMmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU5NzIsNyArNTk3Miw2IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6ZXhpdEZ1bGxzY3JlZW4oKQogCiAgICAgaWYgKGRvY3VtZW50KCkuYWN0
aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpIHx8IGRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0
c0FyZVN0b3BwZWQoKSkgewogICAgICAgICBzZXRGdWxsc2NyZWVuTW9kZShWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlTm9uZSk7Ci0gICAgICAgIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlID0gdHJ1
ZTsKICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRl
b0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKGRvd25jYXN0PEhUTUxWaWRlb0VsZW1l
bnQ+KCp0aGlzKSwgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAgIH0gZWxzZSBpZiAoZG9j
dW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVu
KG9sZFZpZGVvRnVsbHNjcmVlbk1vZGUpKSB7CiAgICAgICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVl
blN0YW5kYnkpIHsKQEAgLTYwMzIsNyArNjAzMSw5IEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuU3RhbmRieShib29sIHZhbHVlKQogICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpCiAgICAgICAgIGRvY3VtZW50KCkucGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChk
b3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PigqdGhpcyksIFZpZGVvRnVsbHNjcmVlbk1vZGVOb25l
LCBtX3ZpZGVvRnVsbHNjcmVlblN0YW5kYnkpOwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQo
KS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpKTsKKyAgICAgICAgZG9jdW1l
bnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oKnRoaXMpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShhdXRvIHN1Y2Nlc3MpIG11dGFibGUgeworICAgICAg
ICAgICAgbV92aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5ID0gIXN1Y2Nlc3M7CisgICAgICAgIH0pOwog
fQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCAxNWRhYjFmNDY0
YTFlNzMyMWY0NjU4M2JiOTZhOGRkMGFlYTFmMTI2Li42ZDI3ZjM2YzE3ODEzNWM5YWRjMWViZmJl
MjYzNWNkNTU5MDI2NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5j
cHAKQEAgLTQ2NywxMiArNDY3LDEzIEBAIEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0
aW9uTW9kZSBIVE1MVmlkZW9FbGVtZW50Ojp0b1ByZXNlbnRhdGlvbk1vZGUoSFRNCiB2b2lkIEhU
TUxWaWRlb0VsZW1lbnQ6OndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRp
b25Nb2RlIG1vZGUpCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgIiwgbW9kZSA9ICIs
ICBtb2RlKTsKLSAgICBzZXRQcmVzZW50YXRpb25Nb2RlKG1vZGUpOworICAgIGlmICghaXNDaGFu
Z2luZ1ZpZGVvRnVsbHNjcmVlbk1vZGUoKSkKKyAgICAgICAgc2V0UHJlc2VudGF0aW9uTW9kZSht
b2RlKTsKIH0KIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZp
ZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogewotICAgIGlmIChpc0NoYW5naW5nVmlkZW9GdWxs
c2NyZWVuTW9kZSgpIHx8IHRvUHJlc2VudGF0aW9uTW9kZShmdWxsc2NyZWVuTW9kZSgpKSA9PSBt
b2RlKQorICAgIGlmICh0b1ByZXNlbnRhdGlvbk1vZGUoZnVsbHNjcmVlbk1vZGUoKSkgPT0gbW9k
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byB2aWRlb0Z1bGxzY3JlZW5Nb2RlID0gdG9G
dWxsc2NyZWVuTW9kZShtb2RlKTsKQEAgLTQ4MSw3ICs0ODIsNyBAQCB2b2lkIEhUTUxWaWRlb0Vs
ZW1lbnQ6OnNldFByZXNlbnRhdGlvbk1vZGUoVmlkZW9QcmVzZW50YXRpb25Nb2RlIG1vZGUpCiAg
ICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpIHsK
ICAgICAgICAgaWYgKGlzRnVsbHNjcmVlbigpKSB7CiAgICAgICAgICAgICBpZiAodG9QcmVzZW50
YXRpb25Nb2RlKGZ1bGxzY3JlZW5Nb2RlKCkpID09IFZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGlj
dHVyZUluUGljdHVyZSkKLSAgICAgICAgICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSB0cnVlOworICAgICAgICAgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0
cnVlOwogCiAgICAgICAgICAgICBleGl0RnVsbHNjcmVlbigpOwogICAgICAgICB9CkBAIC00OTMs
OSArNDk0LDkgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpzZXRQcmVzZW50YXRpb25Nb2RlKFZp
ZGVvUHJlc2VudGF0aW9uTW9kZSBtb2RlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAodmlk
ZW9GdWxsc2NyZWVuTW9kZSA9PSBWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSkK
LSAgICAgICAgbV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CisgICAgICAgIG1f
ZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlID0gdHJ1ZTsKICAgICBlbHNlIGlmIChmdWxsc2NyZWVu
TW9kZSgpID09IFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKQotICAgICAgICBt
X2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworICAgICAgICBtX2V4aXRpbmdQaWN0
dXJlSW5QaWN0dXJlID0gdHJ1ZTsKIAogICAgIGVudGVyRnVsbHNjcmVlbih2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlKTsKIH0KQEAgLTUwNyw4ICs1MDgsOCBAQCBhdXRvIEhUTUxWaWRlb0VsZW1lbnQ6Ondl
YmtpdFByZXNlbnRhdGlvbk1vZGUoKSBjb25zdCAtPiBWaWRlb1ByZXNlbnRhdGlvbk1vZGUKIAog
dm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJblBpY3R1
cmUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogewotICAgIGlmIChtX2lzRW50ZXJpbmdQaWN0dXJl
SW5QaWN0dXJlKSB7Ci0gICAgICAgIG1faXNFbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxz
ZTsKKyAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgbV9lbnRl
cmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKICAgICAgICAgc2V0Q2hhbmdpbmdWaWRlb0Z1
bGxzY3JlZW5Nb2RlKGZhbHNlKTsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJ
KQpAQCAtNTIwLDggKzUyMSw4IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkRW50ZXJGdWxs
c2NyZWVuT3JQaWN0dXJlSW5QaWN0dXJlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAobV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0g
ICAgICAgIG1faXNFeGl0aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOworICAgIGlmIChtX2V4
aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSBmYWxzZTsKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICAgICAg
aWYgKG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQogICAgICAgICAgICAgbV9waWN0dXJlSW5Q
aWN0dXJlT2JzZXJ2ZXItPmRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7CkBAIC01MzMsOCArNTM0
LDggQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpkaWRFbnRlckZ1bGxzY3JlZW5PclBpY3R1cmVJ
blBpY3R1cmUoY29uc3QgRmxvYXRTaXplJiBzaXoKIAogdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojpk
aWRFeGl0RnVsbHNjcmVlbk9yUGljdHVyZUluUGljdHVyZSgpCiB7Ci0gICAgaWYgKG1faXNFeGl0
aW5nUGljdHVyZUluUGljdHVyZSkgewotICAgICAgICBtX2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1
cmUgPSBmYWxzZTsKKyAgICBpZiAobV9leGl0aW5nUGljdHVyZUluUGljdHVyZSkgeworICAgICAg
ICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CiAgICAgICAgIHNldENoYW5naW5n
VmlkZW9GdWxsc2NyZWVuTW9kZShmYWxzZSk7CiAKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkKQEAgLTU2MCw3ICs1NjEsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKGNvbnN0IEZsb2F0UmVjdCYgZnJhbWUpCiAgICAgICAgIHJldHVy
bjsKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQotICAgIGlmICghbV9pc0Vu
dGVyaW5nUGljdHVyZUluUGljdHVyZSAmJiAhbV9pc0V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlICYm
IG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyKQorICAgIGlmICghbV9lbnRlcmluZ1BpY3R1cmVJ
blBpY3R1cmUgJiYgIW1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgJiYgbV9waWN0dXJlSW5QaWN0
dXJlT2JzZXJ2ZXIpCiAgICAgICAgIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyLT5waWN0dXJl
SW5QaWN0dXJlV2luZG93UmVzaXplZChJbnRTaXplKGZyYW1lLnNpemUoKSkpOwogI2VuZGlmCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGVmZmYzZjY2ZTgxM2I3
Nzg2OTgwY2FiY2EzNTEwYjEyMGRiNjA0MDIuLjE3ZDY1MjE5MjA1MzdmY2RlOGMwNGI0Mjc4MTZk
Y2E3NzU0NTU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0x
NDIsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xhc3RSZXBvcnRlZFZpZGVv
SGVpZ2h0IHsgMCB9OwogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQotICAg
IGJvb2wgbV9pc0VudGVyaW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBt
X2lzRXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9lbnRlcmlu
Z1BpY3R1cmVJblBpY3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUlu
UGljdHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RV
UkVfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNmRkZDliYzcwYzMwNjYy
YzRmZGY3ZDY0NDAyOTIwNWNhMmExNGI5OS4uN2FmMTc4ZTk4NjY4ZGE5YzcxNDQ0NDUxMzI2MDY5
NzQ4N2Q4MzVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zODYsNyArMzg2
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNl
c3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllcikgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwg
dm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyID0gW10oYm9vbCkgeyB9KSB7IGNvbXBsZXRpb25IYW5kbGVyKHRy
dWUpOyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0
QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGUpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5G
b3JWaWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNl
cnZlci5oCmluZGV4IGY0OTEyNDYyN2U2YWI1NzJlYzc5MmYwMjdjYzNmOWM4N2M2YjhhNzUuLjYz
MTc5NzgxODFhOTg4ZDcyN2Y1YTUwNWZkOWRjMGMyNmNmY2JkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaApAQCAtNDIsNyArNDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEV4aXRGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNj
cmVlbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5l
KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkg
PSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1vZGVsLmgKaW5kZXggOWY4ZGQwODg3OTNhZWUwYzg2N2IyZTE3NmVhZjY0
NzFiMDljYWRkYi4uMGZlZDc5NWFjYTlkOTg2ZmQxOThmY2VjOGRmYjVjNTBhNWFkMmQ2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9k
ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5N
b2RlbC5oCkBAIC04MSw3ICs4MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEVu
dGVyUGljdHVyZUluUGljdHVyZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlclBpY3R1
cmVJblBpY3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9FbnRlclBpY3R1cmVJ
blBpY3R1cmUoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvRXhpdFBpY3R1cmVJblBp
Y3R1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG1vZGVsRGVzdHJveWVkKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmlu
ZGV4IDUyODAzMDNlNDg4YWUyMzgwYTU1OWNmNWExMWVlNzFkMmE3ZTU5M2UuLmRlNWE4NmM5NDJh
OGVmODI4MmExNDBiMDJmODU4ZDZlOWY0NDU1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCkBA
IC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0dXBG
dWxsc2NyZWVuKFVJVmlldyYgdmlkZW9WaWV3LCBjb25zdCBJbnRSZWN0JiBpbml0aWFsUmVjdCwg
Y29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMsIFVJVmlldyogcGFyZW50VmlldywgSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1
cmVJblBpY3R1cmVQbGF5YmFjaywgYm9vbCBzdGFuZGJ5KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGVudGVyRnVsbHNjcmVlbigpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxz
Y3JlZW4oY29uc3QgSW50UmVjdCYgZmluYWxSZWN0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGV4aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
aW52YWxpZGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0
RnVsbHNjcmVlbigpOwpAQCAtODksNiArODksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyKGJvb2wpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0SW5saW5lUmVjdChjb25zdCBJbnRSZWN0JiwgYm9vbCB2aXNpYmxlKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHByZXBhcmVkVG9SZXR1cm5Ub1N0YW5kYnkoKTsKIAogICAgIGVudW0g
Y2xhc3MgRXhpdEZ1bGxTY3JlZW5SZWFzb24gewogICAgICAgICBEb25lQnV0dG9uVGFwcGVkLApA
QCAtMTM2LDYgKzEzNyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JQaWN0dXJlSW5Q
aWN0dXJlU3RvcChXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIGJv
b2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CisgICAgYm9vbCBpblBpY3R1
cmVJblBpY3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSB8
fCBtX2N1cnJlbnRNb2RlLmhhc1BpY3R1cmVJblBpY3R1cmUoKTsgfQorICAgIGJvb2wgcmV0dXJu
aW5nVG9TdGFuZGJ5KCkgY29uc3QgeyByZXR1cm4gbV9yZXR1cm5pbmdUb1N0YW5kYnk7IH0KIAog
ICAgIHZvaWQgd2lsbFN0YXJ0UGljdHVyZUluUGljdHVyZSgpOwogICAgIHZvaWQgZGlkU3RhcnRQ
aWN0dXJlSW5QaWN0dXJlKCk7CkBAIC0xNDYsMTAgKzE0OSw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IGV4aXRGdWxsc2NyZWVuSGFuZGxlcihCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKik7CiAgICAgdm9p
ZCBlbnRlckZ1bGxzY3JlZW5IYW5kbGVyKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKTsKICAgICBi
b29sIGlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdDsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFJlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZShCT09MKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHZvaWQgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRN
b2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzaG91
bGROb3RpZnlNb2RlbCk7CisgICAgdm9pZCBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHNob3VsZE5vdGlmeU1vZGVsKTsKICAgICBib29s
IGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUp
IGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudE1vZGUuaGFzTW9kZShtb2RlKTsgfQogCiAgICAgVUlW
aWV3Q29udHJvbGxlciAqcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCk7CkBAIC0xNjYsNyArMTY4
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmV0dXJuVG9TdGFuZGJ5KCk7CiAgICAgdm9pZCBk
b0VudGVyRnVsbHNjcmVlbigpOwogICAgIHZvaWQgd2F0Y2hkb2dUaW1lckZpcmVkKCk7Ci0gICAg
dm9pZCBzdG9wUGljdHVyZUluUGljdHVyZVRpbWVyRmlyZWQoKTsKICAgICBXZWJBVlBsYXllckNv
bnRyb2xsZXIgKnBsYXllckNvbnRyb2xsZXIoKSBjb25zdDsKIAogICAgIFJlZjxQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VBVktpdD4gbV9wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2U7CkBAIC0xODQs
MTQgKzE4NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmV0YWluUHRyPFdlYkFWUGxheWVyTGF5ZXJW
aWV3PiBtX3BsYXllckxheWVyVmlldzsKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+IG1f
cHJlcGFyZVRvSW5saW5lQ2FsbGJhY2s7CiAgICAgUnVuTG9vcDo6VGltZXI8VmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ+IG1fd2F0Y2hkb2dUaW1lcjsKLSAgICBSdW5Mb29wOjpUaW1lcjxW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gbV9zdG9wUGljdHVyZUluUGljdHVyZVRpbWVy
OwogICAgIEZsb2F0UmVjdCBtX2lubGluZVJlY3Q7CiAgICAgUm91dGVTaGFyaW5nUG9saWN5IG1f
cm91dGVTaGFyaW5nUG9saWN5IHsgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0IH07CiAgICAg
U3RyaW5nIG1fcm91dGluZ0NvbnRleHRVSUQ7CiAgICAgYm9vbCBtX2FsbG93c1BpY3R1cmVJblBp
Y3R1cmVQbGF5YmFjayB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dpcmVsZXNzVmlkZW9QbGF5YmFj
a0Rpc2FibGVkIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5X
aGVuU3RvcHBpbmdQaVAgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRSZXR1cm5Ub0Z1bGxz
Y3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJlSW5QaWN0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1f
cmVzdG9yaW5nRnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fcmV0dXJuaW5nVG9TdGFuZGJ5IHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9zZXR1
cE5lZWRzSW5saW5lUmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2V4aXRGdWxsc2NyZWVuTmVl
ZElubGluZVJlY3QgeyBmYWxzZSB9OwpAQCAtMjI0LDcgKzIyNSw2IEBAIHByb3RlY3RlZDoKICAg
ICBib29sIG1fc2hvdWxkSWdub3JlQVZLaXRDYWxsYmFja0Fib3V0RXhpdEZ1bGxzY3JlZW5SZWFz
b24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9leGl0aW5nUGljdHVyZUluUGljdHVyZSB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSB7IHRydWUgfTsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlYWY2NzQ1N2VkOWE2OTdjOTljYTViZmExNzBkM2Mw
Nzk3ZTg5ZTM1Li40MjYzYjgzZmIxZDlmN2QzNjkxZjIzYzg3MmUyYTVlNTIzZmRlY2Q2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC04NSw3ICs4NSw2IEBAIHN0YXRpYyBjb25zdCBjaGFy
KiBib29sU3RyaW5nKGJvb2wgdmFsKQogI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBTZWNvbmRzIGRl
ZmF1bHRXYXRjaGRvZ1RpbWVySW50ZXJ2YWwgeyAxX3MgfTsKLXN0YXRpYyBjb25zdCBTZWNvbmRz
IHN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJJbnRlcnZhbCB7IDFfcyB9Owogc3RhdGljIGJvb2wg
aWdub3JlV2F0Y2hkb2dGb3JEZWJ1Z2dpbmcgPSBmYWxzZTsKIAogQGludGVyZmFjZSBBVlBsYXll
clZpZXdDb250cm9sbGVyIChEZXRhaWxzKQpAQCAtODIzLDcgKzgyMiw2IEBAIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdChQbGF5YmFj
a1Nlc3Npb25JbnRlCiAgICAgOiBtX3BsYXliYWNrU2Vzc2lvbkludGVyZmFjZShwbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2UpCiAgICAgLCBtX3BsYXllclZpZXdDb250cm9sbGVyRGVsZWdhdGUoYWRv
cHROUyhbW1dlYkFWUGxheWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pKQog
ICAgICwgbV93YXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Ojp3YXRjaGRvZ1RpbWVyRmlyZWQpCi0gICAgLCBtX3N0b3BQaWN0
dXJlSW5QaWN0dXJlVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtOTU1LDE5ICs5NTMsMjIgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
ZW50ZXJGdWxsc2NyZWVuKCkKICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwogfQogCi12b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0
JiBmaW5hbFJlY3QpCitib29sIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVs
bHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpCiB7Ci0gICAgaWYgKG1fd2F0Y2hkb2dU
aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3RvcCgpOworICAgIG1f
d2F0Y2hkb2dUaW1lci5zdG9wKCk7CiAKLSAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1
cmUpCi0gICAgICAgIHJldHVybjsKKyAgICAvLyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIG1heSBh
c2sgYSB2aWRlbyB0byBleGl0IHN0YW5kYnkgd2hpbGUgdGhlIHZpZGVvCisgICAgLy8gaXMgZW50
ZXJpbmcgcGljdHVyZS1pbi1waWN0dXJlLiBXZSBuZWVkIHRvIGlnbm9yZSB0aGUgcmVxdWVzdCBp
biB0aGF0IGNhc2UuCisgICAgaWYgKG1fc3RhbmRieSAmJiBtX2VudGVyaW5nUGljdHVyZUluUGlj
dHVyZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV90YXJnZXRNb2RlID0gSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZTsKIAogICAgIHNldElubGlu
ZVJlY3QoZmluYWxSZWN0LCB0cnVlKTsKICAgICBkb0V4aXRGdWxsc2NyZWVuKCk7CiAgICAgbV9z
aG91bGRJZ25vcmVBVktpdENhbGxiYWNrQWJvdXRFeGl0RnVsbHNjcmVlblJlYXNvbiA9IHRydWU7
CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQpAQCAtOTc1LDkgKzk3Niw2IEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFudXBGdWxsc2NyZWVuKCkKICAgICBMT0coRnVs
bHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVl
biglcCkiLCB0aGlzKTsKICAgICBtX3Nob3VsZElnbm9yZUFWS2l0Q2FsbGJhY2tBYm91dEV4aXRG
dWxsc2NyZWVuUmVhc29uID0gZmFsc2U7CiAKLSAgICBpZiAobV9lbnRlcmluZ1BpY3R1cmVJblBp
Y3R1cmUpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fY2xlYW51cE5lZWRzUmV0dXJuVmlkZW9D
b250ZW50TGF5ZXIgPSB0cnVlOwogICAgIGlmIChtX2hhc1ZpZGVvQ29udGVudExheWVyICYmIG1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKSB7CiAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9i
c2VydmVyLT5yZXR1cm5WaWRlb0NvbnRlbnRMYXllcigpOwpAQCAtMTAzNSw3ICsxMDMzLDkgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7CiAgICAg
bV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCA9IG51bGxwdHI7CiAgICAgbV9mdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIgPSBudWxscHRyOwotICAgIAorCisgICAgbV93YXRjaGRvZ1RpbWVyLnN0b3AoKTsK
KyAgICBtX2VudGVyaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogICAgIGNsZWFudXBGdWxs
c2NyZWVuKCk7CiB9CiAKQEAgLTEwOTQsMTEgKzEwOTQsOCBAQCBib29sIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVy
ZSgpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVy
ZUluUGljdHVyZVN0b3AoV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQogewog
ICAgIG1fcHJlcGFyZVRvSW5saW5lQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAgICBp
ZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpIHsKKyAgICBpZiAobV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXIpCiAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5mdWxsc2Ny
ZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKLSAgICAgICAgaWYgKG1fcmVhZHlUb1N0b3BQaWN0dXJl
SW5QaWN0dXJlKQotICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmZ1bGxz
Y3JlZW5XaWxsUmV0dXJuVG9JbmxpbmUoKTsKLSAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTEyMCwy
OCArMTExNywyNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3Rh
cnRQaWN0dXJlSW5QaWN0dXJlKCkKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmRpZFN0YXJ0UGljdHVyZUluUGljdHVyZSgpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkU3RhcnRQaWN0dXJlSW5QaWN0dXJlKCVwKSIs
IHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlUGljdHVyZUluUGljdHVyZSk7CisgICAgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCAhbV9lbnRlckZ1bGxzY3Jl
ZW5OZWVkc0VudGVyUGljdHVyZUluUGljdHVyZSk7CiAgICAgW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107CiAgICAgW21fdmlld0NvbnRyb2xsZXIg
X3NldElnbm9yZUFwcFN1cHBvcnRlZE9yaWVudGF0aW9uczpOT107CiAKICAgICBpZiAobV9jdXJy
ZW50TW9kZS5oYXNGdWxsc2NyZWVuKCkpIHsKLSAgICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxz
Y3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBZRVM7CisgICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxs
c2NyZWVuV2hlblN0b3BwaW5nUGljdHVyZUluUGljdHVyZSA9IHRydWU7CiAgICAgICAgIFtbbV9w
bGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CiAgICAgICAgIFttX3Bs
YXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6WUVTIGNvbXBsZXRpb25I
YW5kbGVyOltwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpc10gKEJPT0wgc3Vj
Y2VzcywgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgICAgIGV4aXRGdWxsc2NyZWVuSGFuZGxl
cihzdWNjZXNzLCBlcnJvcik7CiAgICAgICAgIH1dOwogICAgIH0gZWxzZSB7CisgICAgICAgIGlm
IChtX3N0YW5kYnkpCisgICAgICAgICAgICBtX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbldoZW5T
dG9wcGluZ1BpY3R1cmVJblBpY3R1cmUgPSB0cnVlOworCiAgICAgICAgIFttX3dpbmRvdyBzZXRI
aWRkZW46WUVTXTsKICAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEhp
ZGRlbjpZRVNdOwogICAgIH0KIAotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQotICAg
ICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5kaWRFbnRlclBpY3R1cmVJblBpY3R1cmUoKTsK
LQogICAgIGlmIChtX2VudGVyRnVsbHNjcmVlbk5lZWRzRW50ZXJQaWN0dXJlSW5QaWN0dXJlKQog
ICAgICAgICBkb0VudGVyRnVsbHNjcmVlbigpOwotCi0gICAgbV9lbnRlcmluZ1BpY3R1cmVJblBp
Y3R1cmUgPSBmYWxzZTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
ZmFpbGVkVG9TdGFydFBpY3R1cmVJblBpY3R1cmUoKQpAQCAtMTE1MywxMSArMTE0OCwxMCBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmYWlsZWRUb1N0YXJ0UGljdHVyZUlu
UGljdHVyZSgpCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVlbigpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAgICBpZiAobV92
aWRlb0Z1bGxzY3JlZW5Nb2RlbCkgewogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5m
YWlsZWRUb0VudGVyUGljdHVyZUluUGljdHVyZSgpOwotCi0gICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZWwpCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPnJlcXVlc3RGdWxsc2Ny
ZWVuTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsK
KyAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9w
UGljdHVyZUluUGljdHVyZSgpCkBAIC0xMTY1LDcgKzExNTksNyBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RvcFBpY3R1cmVJblBpY3R1cmUoKQogICAgIExPRyhG
dWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndpbGxTdG9wUGljdHVy
ZUluUGljdHVyZSglcCkiLCB0aGlzKTsKIAogICAgIG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUg
PSB0cnVlOwotICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5nUGlQID0g
ZmFsc2U7CisgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaWN0dXJl
SW5QaWN0dXJlID0gZmFsc2U7CiAKICAgICBpZiAobV9jdXJyZW50TW9kZS5oYXNGdWxsc2NyZWVu
KCkgfHwgbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApCiAgICAg
ICAgIHJldHVybjsKQEAgLTExODAsOCArMTE3NCwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUluUGljdHVyZSgpCiAgICAgbV90YXJnZXRNb2Rl
LnNldFBpY3R1cmVJblBpY3R1cmUoZmFsc2UpOwogICAgIFttX3ZpZXdDb250cm9sbGVyIF9zZXRJ
Z25vcmVBcHBTdXBwb3J0ZWRPcmllbnRhdGlvbnM6WUVTXTsKIAorICAgIGlmIChtX3JldHVybmlu
Z1RvU3RhbmRieSkgeworICAgICAgICBtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7
CisgICAgICAgIG1fZW50ZXJpbmdQaWN0dXJlSW5QaWN0dXJlID0gZmFsc2U7CisgICAgICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsKQorICAgICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5N
b2RlbC0+ZGlkRXhpdFBpY3R1cmVJblBpY3R1cmUoKTsKKworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzRnVsbHNjcmVlbigpIHx8IG1fcmVzdG9yaW5n
RnVsbHNjcmVlbkZvclBpY3R1cmVJblBpY3R1cmVTdG9wKSB7Ci0gICAgICAgIGNsZWFyTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJl
KTsKKyAgICAgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUsICFtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVy
ZUluUGljdHVyZSAmJiBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3Rv
cCk7CiAgICAgICAgIFttX3dpbmRvdyBtYWtlS2V5V2luZG93XTsKICAgICAgICAgW21fcGxheWVy
Vmlld0NvbnRyb2xsZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107CiAKQEAgLTExOTgs
MTEgKzEyMDEsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdG9w
UGljdHVyZUluUGljdHVyZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIW1f
cmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmICghbV9zdG9wUGljdHVy
ZUluUGljdHVyZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX3N0b3BQaWN0dXJlSW5Q
aWN0dXJlVGltZXIuc3RhcnRPbmVTaG90KHN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJJbnRlcnZh
bCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKTsKKyAgICBjbGVhck1vZGUoSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSwg
IW1fZXhpdEZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlKTsKIAogICAgIFttX3Bs
YXllckxheWVyVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6Y2xlYXJVSUNvbG9yKCldOwogICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6Y2xlYXJVSUNv
bG9yKCldOwpAQCAtMTIxMiwyMCArMTIxMSwxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpkaWRTdG9wUGljdHVyZUluUGljdHVyZSgpCiAKICAgICBpZiAobV9leGl0RnVs
bHNjcmVlbk5lZWRzRXhpdFBpY3R1cmVJblBpY3R1cmUpCiAgICAgICAgIGRvRXhpdEZ1bGxzY3Jl
ZW4oKTsKLSAgICBlbHNlIGlmIChtX2V4aXRpbmdQaWN0dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAg
IG1fZXhpdGluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKLQotICAgICAgICBpZiAobV92aWRl
b0Z1bGxzY3JlZW5Nb2RlbCkKLSAgICAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRp
ZEV4aXRQaWN0dXJlSW5QaWN0dXJlKCk7Ci0gICAgfQogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpwcmVwYXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxl
dGlvbkhhbmRsZXIodm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShCT09MIHJlc3RvcmVkKSkKIHsK
ICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVw
YXJlRm9yUGljdHVyZUluUGljdHVyZVN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIoJXApIiwgdGhp
cyk7CiAKLSAgICBpZiAobV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAp
IHsKLSAgICAgICAgbV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaVAgPSBm
YWxzZTsKKyAgICBpZiAobV9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5XaGVuU3RvcHBpbmdQaWN0
dXJlSW5QaWN0dXJlKSB7CisgICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0
b3BwaW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogICAgICAgICBtX3Jlc3RvcmluZ0Z1bGxz
Y3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCA9IHRydWU7CiAKICAgICAgICAgW21fd2luZG93
IHNldEhpZGRlbjpOT107CkBAIC0xMjM2LDYgKzEyMjksMTIgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvclBpY3R1cmVJblBpY3R1cmVTdG9wV2l0aENvbXBs
ZXRpb24KICAgICAgICAgICAgIGVudGVyRnVsbHNjcmVlbkhhbmRsZXIoc3VjY2VzcywgZXJyb3Ip
OwogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3VjY2Vzcyk7CiAgICAgICAgIH1dOwor
CisgICAgICAgIGlmIChtX3N0YW5kYnkpIHsKKyAgICAgICAgICAgIG1fcmV0dXJuaW5nVG9TdGFu
ZGJ5ID0gdHJ1ZTsKKyAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldEFsbG93
c1BpY3R1cmVJblBpY3R1cmVQbGF5YmFjazpOT107CisgICAgICAgIH0KKwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xMjg5LDEwICsxMjg4LDEwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnNldEhhc1ZpZGVvQ29udGVudExheWVyKGJvb2wgdmFsdWUpCiAgICAg
ICAgIGZpbmFsaXplU2V0dXAoKTsKICAgICBpZiAoIW1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYg
bV9jbGVhbnVwTmVlZHNSZXR1cm5WaWRlb0NvbnRlbnRMYXllcikKICAgICAgICAgY2xlYW51cEZ1
bGxzY3JlZW4oKTsKLSAgICBpZiAoIW1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9yZXR1cm5U
b1N0YW5kYnlOZWVkc1JldHVyblZpZGVvQ29udGVudExheWVyKQotICAgICAgICByZXR1cm5Ub1N0
YW5kYnkoKTsKLSAgICBpZiAoIW1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9maW5hbGl6ZVNl
dHVwTmVlZHNSZXR1cm5WaWRlb0NvbnRlbnRMYXllcikKKyAgICBpZiAoIW1faGFzVmlkZW9Db250
ZW50TGF5ZXIgJiYgbV9maW5hbGl6ZVNldHVwTmVlZHNSZXR1cm5WaWRlb0NvbnRlbnRMYXllciAm
JiAhbV9yZXR1cm5pbmdUb1N0YW5kYnkpCiAgICAgICAgIGZpbmFsaXplU2V0dXAoKTsKKyAgICBp
ZiAoIW1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9yZXR1cm5pbmdUb1N0YW5kYnkpCisgICAg
ICAgIHJldHVyblRvU3RhbmRieSgpOwogICAgIGlmICghbV9oYXNWaWRlb0NvbnRlbnRMYXllciAm
JiBtX2V4aXRGdWxsc2NyZWVuTmVlZHNSZXR1cm5Db250ZW50TGF5ZXIpCiAgICAgICAgIGRvRXhp
dEZ1bGxzY3JlZW4oKTsKIH0KQEAgLTEzMTksOCArMTMxOCw2IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnNldElubGluZVJlY3QoY29uc3QgSW50UmVjdCYgaW5saW5lUmVj
dCwgYm9vCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRvU2V0dXAoKQog
ewotICAgIE1vZGUgY2hhbmdlcyB7IG1fY3VycmVudE1vZGUubW9kZSgpIF4gbV90YXJnZXRNb2Rl
Lm1vZGUoKSB9OwotCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzVmlkZW8oKSAmJiBtX3Rhcmdl
dE1vZGUuaGFzVmlkZW8oKSkgewogICAgICAgICBtX3N0YW5kYnkgPSBtX3RhcmdldFN0YW5kYnk7
CiAgICAgICAgIGZpbmFsaXplU2V0dXAoKTsKQEAgLTE0MDgsNiArMTQwNSwxNCBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb1NldHVwKCkKICAgICBmaW5hbGl6ZVNldHVw
KCk7CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnByZXBhcmVkVG9S
ZXR1cm5Ub1N0YW5kYnkoKQoreworICAgIGlmICghbV9yZXR1cm5pbmdUb1N0YW5kYnkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlLCB0cnVlKTsKK30KKwogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZmluYWxpemVTZXR1cCgpCiB7CiAgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
UHRyKHRoaXMpLCB0aGlzXSB7CkBAIC0xNDg0LDcgKzE0ODksMTEgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZG9FbnRlckZ1bGxzY3JlZW4oKQogICAgICAgICAgICAgc2l6
ZSA9IEZsb2F0U2l6ZSh2aWRlb0ZyYW1lLnNpemUoKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9m
dWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZEVudGVyRnVsbHNjcmVlbihzaXplKTsKKyAgICAg
ICAgbV9lbnRlcmluZ1BpY3R1cmVJblBpY3R1cmUgPSBmYWxzZTsKICAgICB9CisKKyAgICBpZiAo
bV9jdXJyZW50TW9kZS5oYXNQaWN0dXJlSW5QaWN0dXJlKCkgJiYgbV92aWRlb0Z1bGxzY3JlZW5N
b2RlbCAmJiAhbV9yZXN0b3JpbmdGdWxsc2NyZWVuRm9yUGljdHVyZUluUGljdHVyZVN0b3ApCisg
ICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmRpZEVudGVyUGljdHVyZUluUGljdHVyZSgp
OwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpkb0V4aXRGdWxsc2Ny
ZWVuKCkKQEAgLTE1MDksNyArMTUxOCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmRvRXhpdEZ1bGxzY3JlZW4oKQogCiAgICAgaWYgKG1fY3VycmVudE1vZGUuaGFzTW9k
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0
dXJlKSkgewogICAgICAgICBtX2V4aXRGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVy
ZSA9IHRydWU7Ci0gICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3BwaW5n
UGlQID0gZmFsc2U7CisgICAgICAgIG1fc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuV2hlblN0b3Bw
aW5nUGljdHVyZUluUGljdHVyZSA9IGZhbHNlOwogICAgICAgICBbbV93aW5kb3cgc2V0SGlkZGVu
Ok5PXTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcFBpY3R1cmVJblBpY3R1
cmVdOwogICAgICAgICByZXR1cm47CkBAIC0xNTM4LDcgKzE1NDcsNyBAQCB2b2lkIFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNz
LCBOU0Vycm9yKgogCiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkRXhpdEZ1bGxzY3JlZW4oJXApIC0gJWQiLCB0aGlzLCBzdWNjZXNzKTsKIAot
ICAgIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVT
dGFuZGFyZCk7CisgICAgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZVN0YW5kYXJkLCBmYWxzZSk7CiAKICAgICBpZiAoaGFzTW9kZShIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKSkgewogICAg
ICAgICBbbV93aW5kb3cgc2V0SGlkZGVuOllFU107CkBAIC0xNTY0LDggKzE1NzMsMTEgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuSGFuZGxlcihC
T09MIHN1Y2Nlc3MsIE5TRXJyb3IKICAgICAgICAgV1RGTG9nQWx3YXlzKCItW0FWUGxheWVyVmll
d0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuQW5pbWF0ZWQ6Y29tcGxldGlvbkhhbmRsZXI6XSBm
YWlsZWQgd2l0aCBlcnJvciAlcyIsIFtbZXJyb3IgbG9jYWxpemVkRGVzY3JpcHRpb25dIFVURjhT
dHJpbmddKTsKIAogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmVudGVyRnVsbHNjcmVlblN0YW5kYXJkIC0gbGFtYmRhKCVwKSIsIHRoaXMpOwotICAg
IHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRh
cmQpOwotICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9s
czpZRVNdOworICAgIGlmICghbV9zdGFuZGJ5KSB7CisgICAgICAgIHNldE1vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQsICFtX2VudGVyRnVsbHNj
cmVlbk5lZWRzRW50ZXJGdWxsc2NyZWVuKTsKKyAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgc2V0U2hvd3NQbGF5YmFja0NvbnRyb2xzOllFU107CisgICAgfSBlbHNlCisgICAgICAgIFtt
X3BsYXllclZpZXdDb250cm9sbGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpOT107CiAKICAg
ICBtX3Jlc3RvcmluZ0Z1bGxzY3JlZW5Gb3JQaWN0dXJlSW5QaWN0dXJlU3RvcCA9IGZhbHNlOwog
CkBAIC0xNTc1LDE2ICsxNTg3LDEyIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmVudGVyRnVsbHNjcmVlbkhhbmRsZXIoQk9PTCBzdWNjZXNzLCBOU0Vycm9yCiAKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJldHVyblRvU3RhbmRieSgpCiB7Ci0gICAg
aWYgKG1faGFzVmlkZW9Db250ZW50TGF5ZXIgJiYgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIp
IHsKLSAgICAgICAgbV9yZXR1cm5Ub1N0YW5kYnlOZWVkc1JldHVyblZpZGVvQ29udGVudExheWVy
ID0gdHJ1ZTsKLSAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPnJldHVyblZpZGVv
Q29udGVudExheWVyKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX3JldHVyblRv
U3RhbmRieU5lZWRzUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIgPSBmYWxzZTsKLQorICAgIG1fcmV0
dXJuaW5nVG9TdGFuZGJ5ID0gZmFsc2U7CiAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwog
ICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRIaWRkZW46WUVTXTsKKworICAg
IGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKKyAgICAgICAgbV9mdWxsc2NyZWVuQ2hh
bmdlT2JzZXJ2ZXItPmRpZFNldHVwRnVsbHNjcmVlbigpOwogfQogCiBOT19SRVRVUk5fRFVFX1RP
X0FTU0VSVCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3YXRjaGRvZ1RpbWVy
RmlyZWQoKQpAQCAtMTU5NSwxNCArMTYwMyw3IEBAIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZv
aWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OndhdGNoZG9nVGltZXJGaXJlZCgpCiAg
ICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEhpZGRlbjpZRVNdOwogfQogCi12
b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzdG9wUGljdHVyZUluUGljdHVyZVRp
bWVyRmlyZWQoKQotewotICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJGaXJlZCglcCkgLSBub3QgcmVhZHkg
dG8gc3RvcCBwaWN0dXJlLWluLXBpY3R1cmUgaW4gJWdzOyBmb3JjaW5nIHN0b3AgcGljdHVyZS1p
bi1waWN0dXJlLiIsIHRoaXMsIHN0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXJJbnRlcnZhbC52YWx1
ZSgpKTsKLSAgICBtX3N0b3BQaWN0dXJlSW5QaWN0dXJlVGltZXIuc3RvcCgpOwotICAgIGNsZWFy
TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5Q
aWN0dXJlKTsKLX0KLQotdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9k
ZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgc2hvdWxkTm90aWZ5TW9kZWwpCiB7
CiAgICAgaWYgKChtX2N1cnJlbnRNb2RlLm1vZGUoKSAmIG1vZGUpID09IG1vZGUpCiAgICAgICAg
IHJldHVybjsKQEAgLTE2MTAsMTcgKzE2MTEsMTcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmUK
ICAgICBtX2N1cnJlbnRNb2RlLnNldE1vZGUobW9kZSk7CiAgICAgLy8gTW9kZTo6bW9kZSgpIGNh
biBiZSAzIChWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgfCBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
UGljdHVyZUluUGljdHVyZSkuCiAgICAgLy8gSFRNTFZpZGVvRWxlbWVudCBkb2VzIG5vdCBleHBl
Y3Qgc3VjaCBhIHZhbHVlIGluIHRoZSBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoKSBjYWxsYmFjay4K
LSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAgICBpZiAobV92aWRlb0Z1bGxzY3Jl
ZW5Nb2RlbCAmJiBzaG91bGROb3RpZnlNb2RlbCkKICAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5N
b2RlbC0+ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKG1vZGUpOwogfQogCi12b2lkIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1v
ZGUsIGJvb2wgc2hvdWxkTm90aWZ5TW9kZWwpCiB7CiAgICAgaWYgKCh+bV9jdXJyZW50TW9kZS5t
b2RlKCkgJiBtb2RlKSA9PSBtb2RlKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2N1cnJlbnRN
b2RlLmNsZWFyTW9kZShtb2RlKTsKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKKyAg
ICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCAmJiBzaG91bGROb3RpZnlNb2RlbCkKICAgICAg
ICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKG1fY3VycmVu
dE1vZGUubW9kZSgpKTsKIH0KIApAQCAtMTYyOSwyMyArMTYzMCw2IEBAIGJvb2wgVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4o
KSBjb25zdAogICAgIHJldHVybiBoYXNNb2RlKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUpICYmIFtwbGF5ZXJDb250cm9s
bGVyKCkgaXNQbGF5aW5nXTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlKEJPT0wgcmVhZHkpCi17Ci0gICAgaWYg
KG1fcmVhZHlUb1N0b3BQaWN0dXJlSW5QaWN0dXJlID09IHJlYWR5KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSA9IHJlYWR5OwotICAgIGlmICht
X3JlYWR5VG9TdG9wUGljdHVyZUluUGljdHVyZSkgewotICAgICAgICBpZiAobV9zdG9wUGljdHVy
ZUluUGljdHVyZVRpbWVyLmlzQWN0aXZlKCkpIHsKLSAgICAgICAgICAgIG1fc3RvcFBpY3R1cmVJ
blBpY3R1cmVUaW1lci5zdG9wKCk7Ci0gICAgICAgICAgICBjbGVhck1vZGUoSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSk7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCi0gICAgICAgICAg
ICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGlu
ZSgpOwotICAgIH0KLX0KLQogc3RhdGljIE9wdGlvbmFsPGJvb2w+IGlzUGljdHVyZUluUGljdHVy
ZVN1cHBvcnRlZDsKIAogdm9pZCBXZWJDb3JlOjpzZXRTdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUo
Ym9vbCBpc1N1cHBvcnRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IDgy
MzczODc4OWMxZjgwNjFhZGI0YmM3N2ZhYTQ3MTY5N2M5MjA1MDMuLmM4YzA0N2YwY2IxZjFkYjdi
ZGI1NmM1OTdmZjNhNDQ3ZGQ2MjgyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5t
bQpAQCAtMTI4LDggKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3Jl
ZW4oKSBmaW5hbDsKICAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9p
ZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIGZpbmFsOwotICAgIHZvaWQgZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBmdWxsc2NyZWVuV2lsbFJldHVyblRv
SW5saW5lKCkgZmluYWw7CisgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBm
aW5hbDsKIAogICAgIC8vIFZpZGVvRnVsbHNjcmVlbk1vZGVsQ2xpZW50CiAgICAgdm9pZCBoYXNW
aWRlb0NoYW5nZWQoYm9vbCkgb3ZlcnJpZGU7CkBAIC0zNjAsNyArMzU5LDcgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQogICAg
IH0pOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpmdWxsc2Ny
ZWVuV2lsbFJldHVyblRvSW5saW5lKCkKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNv
bnRleHQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCiB7CiAgICAgQVNTRVJUKGlzVUlU
aHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0
aGlzKSwgdGhpc10gKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKaW5kZXggZGI1ZDg2MzM3
MmNiMGZmODYwMThkYmIyOTI2MDEwZGQzZTEzNjA3Ny4uYThmMTFlODVmOGZiYzNlYjY5MzI2NTVj
MmQ1ZGMzMzNjNGFkYTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaApAQCAtNzMsNyArNzMsNyBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldHVwRnVsbHNjcmVlbihOU1ZpZXcm
IGxheWVySG9zdGVkVmlldywgY29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIE5TV2luZG93ICpw
YXJlbnRXaW5kb3csIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwg
Ym9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlUGxheWJhY2spOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZW50ZXJGdWxsc2NyZWVuKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBleGl0RnVs
bHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QsIE5TV2luZG93ICpwYXJlbnRXaW5kb3cp
OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50UmVjdCYg
ZmluYWxSZWN0LCBOU1dpbmRvdyAqcGFyZW50V2luZG93KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xl
YW51cEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGludmFsaWRhdGUoKTsK
QEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAgYm9v
bCBoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2Rl
KSBjb25zdCB7IHJldHVybiBtX21vZGUgJiBtb2RlOyB9CiAgICAgYm9vbCBpc01vZGUoSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kZSA9PSBtb2RlOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNb2RlKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSwgYm9vbCk7CiAgICAgdm9pZCBjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNQbGF5aW5nVmlk
ZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KaW5kZXgg
MzBiMTZmY2U1MzFmZWFlZjk4ODliMWY5MTFkZjdlOGRlNGVjZmM2Yy4uYWM0MTBiYjUzNTUzZDk2
NWI5ZmU3MWY1MDJlYWU3MDQ2ODQ4Y2I4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCkBAIC00MDUs
NyArNDA1LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnNldFZpZGVvRnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyKFZpZGVvRnVsbHNjcmUKICAgICBtX2Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlciA9IG1ha2VXZWFrUHRyKG9ic2VydmVyKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWM6OnNldE1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6c2V0
TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9v
bCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbmV3
TW9kZSA9IG1fbW9kZSB8IG1vZGU7CiAgICAgaWYgKG1fbW9kZSA9PSBuZXdNb2RlKQpAQCAtNDc3
LDcgKzQ3Nyw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjplbnRlckZ1bGxz
Y3JlZW4oKQogICAgIH0KIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmV4
aXRGdWxsc2NyZWVuKGNvbnN0IEludFJlY3QmIGZpbmFsUmVjdCwgTlNXaW5kb3cgKnBhcmVudFdp
bmRvdykKK2Jvb2wgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpleGl0RnVsbHNjcmVlbihj
b25zdCBJbnRSZWN0JiBmaW5hbFJlY3QsIE5TV2luZG93ICpwYXJlbnRXaW5kb3cpCiB7CiAgICAg
TE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OmV4aXRGdWxsc2Ny
ZWVuKCVwKSwgZmluYWxSZWN0OnslZCwgJWQsICVkLCAlZH0sIHBhcmVudFdpbmRvdzolcCIsIHRo
aXMsIGZpbmFsUmVjdC54KCksIGZpbmFsUmVjdC55KCksIGZpbmFsUmVjdC53aWR0aCgpLCBmaW5h
bFJlY3QuaGVpZ2h0KCksIHBhcmVudFdpbmRvdyk7CiAKQEAgLTQ4OSw2ICs0ODksOCBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6ZXhpdEZ1bGxzY3JlZW4oY29uc3QgSW50UmVj
dCYgZmluYWxSZWN0LCBOU1dpbgogICAgICAgICBbbV93ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VPYmpDIGV4aXRQSVBdOwogICAgIGVsc2UKICAgICAgICAgW21fd2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlT2JqQyBleGl0UElQQW5pbWF0aW5nVG9SZWN0OmZpbmFsUmVjdCBpbldpbmRvdzpw
YXJlbnRXaW5kb3ddOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjOjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUoSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oCmluZGV4IGIyMDI4ZmMyNmJmMWNhMWM5NzJiZTRjZTg5MDExYzYxNmQ1MWU0MjIu
LjVmMzgxNDVlOTJhZTY2ODdjZmE5Y2ZmMTVhZDE2N2Y3NTQ5MzA3OTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oCkBAIC0xMTIsNyArMTEyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEV4aXRG
dWxsc2NyZWVuKCkgZmluYWw7CiAgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpIGZpbmFs
OwogICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCkgZmluYWw7Ci0gICAgdm9p
ZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKCkgZmluYWw7CiAKICAgICBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTW9k
ZWxDb250ZXh0PiBtX3BsYXliYWNrU2Vzc2lvbk1vZGVsOwpAQCAtMTI3LDcgKzEyNiw2IEBAIGNs
YXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxWaWRlb0Z1bGxzY3JlZW5NCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5Q2xpZW50KCkgeyB9OwogCi0gICAgdmlydHVhbCB2b2lkIGZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9JblBp
Y3R1cmVJblBpY3R1cmVEaWRDaGFuZ2UoYm9vbCB2YWx1ZSkgPSAwOwogfTsKIApAQCAtMTgxLDcg
KzE3OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRIYXNWaWRlbyhQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoUGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYp
OwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyKTsKLSAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyLCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBleGl0RnVsbHNj
cmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SW50UmVjdCBm
aW5hbFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgY2xl
YW51cEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIHZv
aWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CiAgICAgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIpOwpAQCAtMjAxLDcgKzE5OSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVy
R3Jhdml0eShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdl
ZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7Ci0gICAgdm9p
ZCBmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyKTsKIAogICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbW9ja1BpY3R1cmVJblBpY3R1cmVX
aW5kb3dTaXplIHsgRGVmYXVsdE1vY2tQaWN0dXJlSW5QaWN0dXJlV2luZG93V2lkdGgsIERlZmF1
bHRNb2NrUGljdHVyZUluUGljdHVyZVdpbmRvd0hlaWdodCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQxZjA2Y2M4ZThlMjUxOTc5YjU1MmE0M2EzMTY0
NGZkMTI5MmE0NDYuLjQ0MTJlYjg1MTRmMDcwNWU1ZmEyZjUxY2Y0NTc5MmQ2YjFiZDllYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDggKzI1LDEw
IEBAIG1lc3NhZ2VzIC0+IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0SGFz
VmlkZW8oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQs
IGJvb2wgaGFzVmlkZW8pCiAgICAgU2V0VmlkZW9EaW1lbnNpb25zKFdlYktpdDo6UGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUgdmlk
ZW9EaW1lbnNpb25zKQogICAgIFNldHVwRnVsbHNjcmVlbldpdGhJRChXZWJLaXQ6OlBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0SUQgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBXZWJD
b3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zLCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3Is
IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRl
b0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRi
eSkKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBFbnRlckZ1bGxzY3JlZW4oV2ViS2l0
OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCi0gICAgRXhpdEZ1
bGxzY3JlZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorI2VuZGlmCisgICAgRXhpdEZ1bGxzY3Jl
ZW4oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdl
YkNvcmU6OkludFJlY3QgZmluYWxSZWN0KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogICAgIFNl
dElubGluZVJlY3QoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQogICAgIFNl
dEhhc1ZpZGVvQ29udGVudExheWVyKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIgY29udGV4dElkLCBib29sIHZhbHVlKQogICAgIENsZWFudXBGdWxsc2NyZWVuKFdlYktp
dDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tCmluZGV4IDhjZmU4YzVkNzk3Mzg0ODg3OTI5YTYwNzkxODQwNGE4NmNjZDgx
YTMuLmFjNmNiMTM2OGIxNGZhMjI0YzJlMzRmNWFkYjNlYTZhZDEzZDNiNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubW0KQEAgLTI3NCwxMiArMjc0LDYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
b2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgpCiAgICAgICAgIG1fbWFu
YWdlci0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKG1fY29udGV4dElkKTsKIH0KIAotdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5XaWxsUmV0dXJuVG9Jbmxp
bmUoKQotewotICAgIGlmIChtX21hbmFnZXIpCi0gICAgICAgIG1fbWFuYWdlci0+ZnVsbHNjcmVl
bldpbGxSZXR1cm5Ub0lubGluZShtX2NvbnRleHRJZCk7Ci19Ci0KIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDb250ZXh0OjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgU3RyaW5n
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9tYW5hZ2VyKQpAQCAtNjA3LDEx
ICs2MDEsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNj
cmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmkKICAgICB9CiB9CiAKLXZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBmaW5h
bFJlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKG1fY29udGV4dE1hcC5jb250YWlucyhjb250ZXh0SWQpKTsKLSAgICBp
ZiAoIW1fY29udGV4dE1hcC5jb250YWlucyhjb250ZXh0SWQpKQorICAgIGlmICghbV9jb250ZXh0
TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgSW50UmVjdCBmaW5hbFdpbmRvd1JlY3Q7CkBAIC02MjQsMTMgKzYyMCwxNCBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZQogI2Vsc2UKICAgICAgICAgZGlkRXhpdEZ1bGxzY3JlZW4oY29u
dGV4dElkKTsKICNlbmRpZgorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgZW5zdXJl
SW50ZXJmYWNlKGNvbnRleHRJZCkuZXhpdEZ1bGxzY3JlZW4oZmluYWxSZWN0KTsKKyAgICBjb21w
bGV0aW9uSGFuZGxlcihlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5leGl0RnVsbHNjcmVlbihm
aW5hbFJlY3QpKTsKICNlbHNlCi0gICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuZXhpdEZ1
bGxzY3JlZW4oZmluYWxXaW5kb3dSZWN0LCBtX3BhZ2UtPnBsYXRmb3JtV2luZG93KCkpOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLmV4aXRGdWxsc2Ny
ZWVuKGZpbmFsV2luZG93UmVjdCwgbV9wYWdlLT5wbGF0Zm9ybVdpbmRvdygpKSk7CiAjZW5kaWYK
IH0KIApAQCAtNzAyLDYgKzY5OSw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpjbGVhbnVwRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpCiAKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoUGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIHZpc2libGUsIFdl
YkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkKIHsKKyAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZSgpOworCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgSW50UmVj
dCBpbmxpbmVXaW5kb3dSZWN0OwogICAgIG1fcGFnZS0+cm9vdFZpZXdUb1dpbmRvdyhpbmxpbmVS
ZWN0LCBpbmxpbmVXaW5kb3dSZWN0KTsKQEAgLTc0OSw3ICs3NDgsMTEgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJldHVyblZpZGVvQ29udGVudExheWVyKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHQKIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFNldHVw
RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCiB7
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBlbnRlckZ1bGxzY3JlZW4oY29udGV4dElk
KTsKKyNlbHNlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpEaWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisjZW5kaWYKIH0KIAogdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbHNjcmVlbihQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCkBAIC03ODIsNyArNzg1LDcgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFudXBGdWxsc2NyZWVuKFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGUKICAgICBtb2RlbC0+c2V0TGF5ZXJIb3N0VmlldyhudWxscHRy
KTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRp
ZENsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOwogCi0gICAgaW50ZXJmYWNlLT5zZXRNb2Rl
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgIGlu
dGVyZmFjZS0+c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVOb25lLCBmYWxzZSk7CiAgICAgcmVtb3ZlQ2xpZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwog
fQogCkBAIC04MTEsMTUgKzgxNCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkCiAKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogewotICAgIG1fcGFn
ZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci0gICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7Ci19Ci0KLXZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5l
KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKLXsKLSAgICBib29s
IGlzVmlld1Zpc2libGUgPSBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKTsKLSAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5XaWxsUmV0dXJu
VG9JbmxpbmUoY29udGV4dElkLCBpc1ZpZXdWaXNpYmxlKSk7CisgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpGdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUoY29udGV4dElkLCBtX3BhZ2UtPmlzVmlld1Zpc2libGUoKSkpOwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
ZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4IDViNGEy
NjBjOGE2MDI1MTJlZjNhMzljYWE0MTRiNzY3OWE1YjQ3MGYuLjJkOWYzYzYwYTMyNjVhMGNjMTM0
Yjc5YzU4ZDJkMGZlNDI0MWI3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcklPUy5tbQpAQCAtNDI5LDcgKzQyOSw2IEBAIHN0YXRpYyBjb25zdCBOU1RpbWVJ
bnRlcnZhbCBrQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CiAKIEBpbnRlcmZhY2UgV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciAoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KQog
LSAodm9pZClkaWRFbnRlclBpY3R1cmVJblBpY3R1cmU7Ci0tICh2b2lkKXByZXBhcmVUb0V4aXRQ
aWN0dXJlSW5QaWN0dXJlOwogLSAodm9pZClkaWRFeGl0UGljdHVyZUluUGljdHVyZTsKIEBlbmQK
IApAQCAtNDM5LDExICs0MzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKSBmaW5hbAot
ICAgIHsKLSAgICAgICAgW21fcGFyZW50IHByZXBhcmVUb0V4aXRQaWN0dXJlSW5QaWN0dXJlXTsK
LSAgICB9Ci0KICAgICB2b2lkIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlKGJv
b2wgdmFsdWUpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAodmFsdWUpCkBAIC00NzUsNyArNDY5
LDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuSW50ZXJhY3RpdmVUcmFu
c2l0aW9uPiBfaW50ZXJhY3RpdmVEaXNtaXNzVHJhbnNpdGlvbkNvb3JkaW5hdG9yOwogCiAgICAg
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eUNs
aWVudCBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Q2xpZW50OwotICAgIEJPT0wgX2luUGlj
dHVyZUluUGljdHVyZTsKKyAgICBCT09MIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGlj
dHVyZUluUGljdHVyZTsKICAgICBCT09MIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJl
SW5QaWN0dXJlOwogICAgIEJPT0wgX3JldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0
dXJlOwogCkBAIC02OTcsMTMgKzY5MSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcGFnZS0+
c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAKICAgICAgICAgICAgIGlmIChh
dXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdl
cikgewotICAgICAgICAgICAgICAgIEFTU0VSVCh2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jbGll
bnQoKSA9PSBudWxscHRyKTsKICAgICAgICAgICAgICAgICB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LT5zZXRDbGllbnQoJl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQpOwotICAgICAg
ICAgICAgICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZh
Y2UoKSA6IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgaWYgKHZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZSkgeworCisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZSA9IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5j
b250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHIpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQ
aWN0dXJlSW5QaWN0dXJlKFlFUyk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKF9pblBp
Y3R1cmVJblBpY3R1cmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZS0+cHJlcGFyZWRUb1JldHVyblRvU3RhbmRieSgpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlIGlmICh2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPmluUGljdHVyZUluUGljdHVy
ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbW9kZWwgPSB2aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UtPnZpZGVvRnVsbHNjcmVlbk1vZGVsKCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfZW50ZXJGdWxsc2NyZWVuTmVlZHNFeGl0UGljdHVyZUluUGljdHVy
ZSA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbC0+cmVxdWVzdEZ1bGxz
Y3JlZW5Nb2RlKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUpOwpAQCAtNzI3LDYgKzcyMCwxMCBAQCBwcml2YXRlOgogICAgIGlmIChfZnVsbFNj
cmVlblN0YXRlICE9IFdlYktpdDo6Tm90SW5GdWxsU2NyZWVuKQogICAgICAgICByZXR1cm47CiAK
KyAgICAvLyBTd2l0Y2ggdGhlIGFjdGl2ZSB0YWIgaWYgbmVlZGVkCisgICAgaWYgKGF1dG8qIHBh
Z2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0uZ2V0KCkpCisgICAgICAgIHBhZ2UtPmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSgpOworCiAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9t
YW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnJlcXVlc3RFbnRlckZ1bGxTY3JlZW4oKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtNzU5LDYgKzc1Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgX2Z1bGxTY3JlZW5TdGF0ZSA9IFdlYktpdDo6V2FpdGluZ1RvRXhpdEZ1
bGxTY3JlZW47CisgICAgX2V4aXRpbmdGdWxsU2NyZWVuID0gWUVTOwogCiAgICAgaWYgKGF1dG8q
IG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyKSB7CiAgICAgICAgIG1hbmFnZXItPnNldEFuaW1hdGlu
Z0Z1bGxTY3JlZW4odHJ1ZSk7CkBAIC04MjksMTIgKzgyNyw4IEBAIHByaXZhdGU6CiAgICAgICAg
IG1hbmFnZXItPmRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgfQogCi0gICAgaWYgKCFfaW5QaWN0
dXJlSW5QaWN0dXJlKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
ID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAgICAgICAgQVNTRVJUKHZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Q2xpZW50IHx8IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09IG51bGxw
dHIpOwotICAgICAgICAgICAgdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+c2V0Q2xpZW50KG51bGxw
dHIpOwotICAgICAgICB9Ci0gICAgfQorICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZSA9IHNlbGYuX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPyBzZWxmLl92aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSA6IG51bGxwdHI7CisgICAgX3Nob3Vs
ZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJlID0gdmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+aW5QaWN0dXJlSW5QaWN0dXJl
KCk7CiAKICAgICBbX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKICAgICBfd2luZG93ID0gbmlsOwpA
QCAtODYyLDcgKzg1Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9KTsKIAotICAgIGlm
IChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgYXV0byogcGFnZSA9IFtz
ZWxmLl93ZWJWaWV3IF9wYWdlXS5nZXQoKTsKKyAgICBpZiAocGFnZSAmJiBwYWdlLT5pc1ZpZXdG
b2N1c2VkKCkpCiAgICAgICAgIHBhZ2UtPmZvcmNlUmVwYWludChfcmVwYWludENhbGxiYWNrLmNv
cHlSZWYoKSk7CiAgICAgZWxzZQogICAgICAgICBfcmVwYWludENhbGxiYWNrLT5wZXJmb3JtQ2Fs
bGJhY2soKTsKQEAgLTkwMiwzOSArODk3LDMwIEBAIHByaXZhdGU6CiAKIC0gKHZvaWQpZGlkRW50
ZXJQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IFlFUzsKLSAg
ICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwotfQotCi0tICh2b2lkKXByZXBhcmVUb0V4
aXRQaWN0dXJlSW5QaWN0dXJlCi17Ci0gICAgaWYgKF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQ
aWN0dXJlSW5QaWN0dXJlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiB2aWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UgPSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5fdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRy
OwotCi0gICAgaWYgKCF2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmVhZHlUb1N0b3BQaWN0dXJlSW5Q
aWN0dXJlKE5PKTsKLSAgICBfcmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUg
PSBZRVM7Ci0KLSAgICBpZiAoIV9leGl0aW5nRnVsbFNjcmVlbikKLSAgICAgICAgW3NlbGYgcmVx
dWVzdEVudGVyRnVsbFNjcmVlbl07Ci0gICAgZWxzZQotICAgICAgICBfZW50ZXJSZXF1ZXN0ZWQg
PSBZRVM7CisgICAgX3Nob3VsZFJldHVyblRvRnVsbHNjcmVlbkZyb21QaWN0dXJlSW5QaWN0dXJl
ID0gWUVTOworICAgIGlmIChfZnVsbFNjcmVlblN0YXRlID09IFdlYktpdDo6SW5GdWxsU2NyZWVu
KQorICAgICAgICBbc2VsZiByZXF1ZXN0RXhpdEZ1bGxTY3JlZW5dOwogfQogCiAtICh2b2lkKWRp
ZEV4aXRQaWN0dXJlSW5QaWN0dXJlCiB7Ci0gICAgX2luUGljdHVyZUluUGljdHVyZSA9IE5POwot
ICAgIF9lbnRlckZ1bGxzY3JlZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlID0gTk87Ci0gICAg
aWYgKCFbc2VsZiBpc0Z1bGxTY3JlZW5dKSB7Ci0gICAgICAgIGlmIChhdXRvKiB2aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyID0gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikgewotICAgICAgICAg
ICAgQVNTRVJUKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNsaWVudCgpID09ICZfdmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KTsKLSAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbk1h
bmFnZXItPnNldENsaWVudChudWxscHRyKTsKKyAgICBpZiAoIV9lbnRlckZ1bGxzY3JlZW5OZWVk
c0V4aXRQaWN0dXJlSW5QaWN0dXJlICYmIF9zaG91bGRSZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGlj
dHVyZUluUGljdHVyZSkgeworICAgICAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2Ug
PSBzZWxmLl92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gc2VsZi5fdmlkZW9GdWxsc2NyZWVuTWFu
YWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOworICAgICAgICBpZiAo
dmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlICYmIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+cmV0
dXJuaW5nVG9TdGFuZGJ5KCkpIHsKKyAgICAgICAgICAgIGlmICghX2V4aXRpbmdGdWxsU2NyZWVu
KSB7CisgICAgICAgICAgICAgICAgaWYgKF9mdWxsU2NyZWVuU3RhdGUgPT0gV2ViS2l0OjpJbkZ1
bGxTY3JlZW4pCisgICAgICAgICAgICAgICAgICAgIHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+
cHJlcGFyZWRUb1JldHVyblRvU3RhbmRieSgpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgW3NlbGYgcmVxdWVzdEVudGVyRnVsbFNjcmVlbl07CisgICAgICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgICAgICBfZW50ZXJSZXF1ZXN0ZWQgPSBZRVM7CisKKyAgICAg
ICAgICAgIF9yZXR1cm5Ub0Z1bGxzY3JlZW5Gcm9tUGljdHVyZUluUGljdHVyZSA9IFlFUzsKKyAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KKworICAgIF9lbnRlckZ1bGxzY3Jl
ZW5OZWVkc0V4aXRQaWN0dXJlSW5QaWN0dXJlID0gTk87CiB9CiAKICNwcmFnbWEgbWFyayAtCkBA
IC0xMDAxLDkgKzk4NywxMSBAQCBwcml2YXRlOgogCiAtICh2b2lkKV9leGl0RnVsbHNjcmVlbklt
bWVkaWF0ZWx5CiB7Ci0gICAgaWYgKCFbc2VsZiBpc0Z1bGxTY3JlZW5dKQorICAgIGlmIChfZnVs
bFNjcmVlblN0YXRlID09IFdlYktpdDo6Tm90SW5GdWxsU2NyZWVuKQogICAgICAgICByZXR1cm47
CiAKKyAgICBfc2hvdWxkUmV0dXJuVG9GdWxsc2NyZWVuRnJvbVBpY3R1cmVJblBpY3R1cmUgPSBm
YWxzZTsKKwogICAgIGF1dG8qIG1hbmFnZXIgPSBzZWxmLl9tYW5hZ2VyOwogICAgIGlmIChtYW5h
Z2VyKQogICAgICAgICBtYW5hZ2VyLT5yZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIubW0KaW5kZXggNDRmMDc3MWU2ODkzOTNjZDFkMDJhZjUyN2U4MjgwMzRjMjNiOGFi
MS4uNGEwNjljZThiM2I0ODljMGJjYzUwNWQ5YzUxMGZhNTAxNGJkMjNjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIubW0KQEAgLTY0LDEwICs2NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhcmVu
dChXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJl
bnQ7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSgp
IGZpbmFsCi0gICAgewotICAgIH0KLQogICAgIHZvaWQgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmVEaWRDaGFuZ2UoYm9vbCB2YWx1ZSkgZmluYWwKICAgICB7CiAgICAgICAgIGlmICh2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZDAyZWY4MjNlZmUyNjkyNTJkOGMxYjQzNTU1MWZi
NzMxMzA1NDg0Ny4uZmVkYzNkYjEwYWQ3NzNiZDU1MzYzMjZmYWIxYzE3NDA4NWNiMTZkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMDksOSArMTAwOSw5IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVt
ZW50JiB2aWRlCiAgICAgbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5lbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCh2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnkpOwog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2
aWRlb0VsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5leGl0VmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7CisgICAgbV9wYWdlLnZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIoKS5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZp
ZGVvRWxlbWVudCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1MTWVkaWFFbGVtZW50
JiBtZWRpYUVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYzZmOGI5ZGU2YTcwZWYyMzdk
MWY0OGNlY2I0MDExMzU3NzU1Mjk5ZS4uMTcxZmE2MzMzZGNlMzIzYzAwYzc4Y2ViZGUyNzNmMDBl
NmM5MGYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjc1LDcgKzI3NSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBmaW5hbDsKICAgICB2
b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpIGZpbmFsOwogICAg
IHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KSBmaW5hbDsKLSAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOworICAg
IHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmID0gW10oYm9v
bCkgeyB9KSBmaW5hbDsKICAgICB2b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudCYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlcigpIGZpbmFsOwogICAgIHZvaWQgcGxheWJhY2tDb250cm9sc01lZGlhRW5n
aW5lQ2hhbmdlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggYjFkOWRiOGExZjM5ZGQwYWRk
Yzk0MjAzYjJmZTNjNzA2N2ZmOTkxYi4uZDRkMTkyMzQ2MTY1MjBlMGNhNDJlZGQ3YjEwYzZjZTI0
Y2Q1NGMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9IVE1MTWVkaWFFbGVtZW50RW51bXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
Q0FMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgpAQCAtMTAzLDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlciogbV9tYW5hZ2VyOwogICAgIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyIG1fY29udGV4dElkOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0
PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7Ci0gICAgQW5pbWF0aW9uVHlwZSBtX2FuaW1hdGlvblR5
cGUgeyBmYWxzZSB9OworICAgIEFuaW1hdGlvblR5cGUgbV9hbmltYXRpb25UeXBlIHsgQW5pbWF0
aW9uVHlwZTo6Tm9uZSB9OwogICAgIGJvb2wgbV90YXJnZXRJc0Z1bGxzY3JlZW4geyBmYWxzZSB9
OwogICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSBtX2Z1bGxzY3JlZW5Nb2RlIHsgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlTm9uZSB9OwogICAgIGJvb2wgbV9mdWxsc2NyZWVuU3RhbmRieSB7IGZh
bHNlIH07CkBAIC0xMjMsNyArMTI0LDcgQEAgcHVibGljOgogICAgIGJvb2wgc3VwcG9ydHNWaWRl
b0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSBjb25zdDsKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgp
IGNvbnN0OwogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KTsKLSAgICB2b2lkIGV4aXRWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOworICAg
IHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmID0gW10oYm9v
bCkgeyB9KTsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogCiBwcm90ZWN0ZWQ6CkBAIC0xNDksNyArMTUw
LDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QoUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHJldHVy
blZpZGVvQ29udGVudExheWVyKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyKTsKKyNp
ZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbihQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CisjZW5kaWYKICAgICB2b2lkIHdpbGxFeGl0
RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBk
aWRFeGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAg
dm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIs
IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0U2l6ZT4pOwpAQCAtMTU3LDcgKzE2MCw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgY29uc3QgV1RGOjpN
YWNoU2VuZFJpZ2h0Jik7CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0oUGxheWJh
Y2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIHVuc2lnbmVkIGdyYXZpdHkpOwogICAgIHZvaWQg
ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwotICAg
IHZvaWQgZnVsbHNjcmVlbldpbGxSZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciwgYm9vbCBpc1BhZ2VWaXNpYmxlKTsKKyAgICB2b2lkIGZ1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBpc1Bh
Z2VWaXNpYmxlKTsKICAgICB2b2lkIHJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0
VUlEKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBNZXNzYWdlczo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6UmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSURBc3lu
Y1JlcGx5JiYpOwogCiAgICAgV2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbgppbmRleCA1ZDc4OTg3YTJjMGJiOThhMDM0NDhkNWE2NTBiMjY4MGZhMjFlMDhk
Li5iZDdiYmE1NzIxZGQxNDJiYWM1NDJiYzg5MWQ3NWMyYmU0YjE5YWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsOSBAQCBtZXNzYWdlcyAtPiBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBSZXF1ZXN0VXBkYXRlSW5saW5lUmVjdChXZWJLaXQ6
OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCkKICAgICBSZXF1ZXN0
VmlkZW9Db250ZW50TGF5ZXIoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQpCiAgICAgUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoV2ViS2l0OjpQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQpCisjaWYgIVBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgRGlkU2V0dXBGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkKQorI2VuZGlmCiAgICAgV2lsbEV4aXRGdWxsc2NyZWVu
KFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkKQogICAg
IERpZEV4aXRGdWxsc2NyZWVuKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIgY29udGV4dElkKQogICAgIERpZEVudGVyRnVsbHNjcmVlbihXZWJLaXQ6OlBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRT
aXplPiBzaXplKQpAQCAtMzQsNyArMzYsNyBAQCBtZXNzYWdlcyAtPiBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyIHsKICAgICBTZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVjdCBib3Vu
ZHMsIE1hY2hTZW5kUmlnaHQgbWFjaFNlbmRSaWdodCkKICAgICBTZXRWaWRlb0xheWVyR3Jhdml0
eUVudW0oV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQs
IHVuc2lnbmVkIGdyYXZpdHkpCiAgICAgRnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFdlYktpdDo6UGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkK
LSAgICBGdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFdlYktpdDo6UGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCisgICAgRnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCiAgICAgUmVxdWVzdFJvdXRl
U2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Um91dGVTaGFy
aW5nUG9saWN5IHJvdXRlU2hhcmluZ1BvbGljeSwgU3RyaW5nIHJvdXRpbmdDb250ZXh0VUlEKSBB
c3luYwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGY3ZmE3NTllOWVlYjFiNmNiZDE5
MmQ2OTA2NGY2NjdlNDhiYTVjZDAuLjhjZWU4ZjhkYjNlYmZkMzdmMDFlZWY3YTVmNGZjNDNhNTRl
ZDIxZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9W
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yNTcsNyArMjU3LDExIEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRN
TFZpZGVvRWxlbWVuCiAgICAgYXV0byB2aWRlb1JlY3QgPSBpbmxpbmVWaWRlb0ZyYW1lKHZpZGVv
RWxlbWVudCk7CiAgICAgRmxvYXRSZWN0IHZpZGVvTGF5ZXJGcmFtZSA9IEZsb2F0UmVjdCgwLCAw
LCB2aWRlb1JlY3Qud2lkdGgoKSwgdmlkZW9SZWN0LmhlaWdodCgpKTsKIAotICAgIGludGVyZmFj
ZS0+c2V0VGFyZ2V0SXNGdWxsc2NyZWVuKHRydWUpOworICAgIGlmIChtb2RlICE9IEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpCisgICAgICAgIGludGVyZmFj
ZS0+c2V0VGFyZ2V0SXNGdWxsc2NyZWVuKHRydWUpOworICAgIGVsc2UKKyAgICAgICAgaW50ZXJm
YWNlLT5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFsc2UpOworCiAgICAgaW50ZXJmYWNlLT5zZXRG
dWxsc2NyZWVuTW9kZShtb2RlKTsKICAgICBpbnRlcmZhY2UtPnNldEZ1bGxzY3JlZW5TdGFuZGJ5
KHN0YW5kYnkpOwogICAgIG1vZGVsLT5zZXRWaWRlb0VsZW1lbnQoJnZpZGVvRWxlbWVudCk7CkBA
IC0yODgsNyArMjkyLDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxsc2NyZWVu
V2l0aElEKGNvbnRleHRJZCwgaW50ZXJmYWNlLT5sYXllckhvc3RpbmdDb250ZXh0KCktPmNvbnRl
eHRJRCgpLCB2aWRlb1JlY3QsIEZsb2F0U2l6ZSh2aWRlb0VsZW1lbnQudmlkZW9XaWR0aCgpLCB2
aWRlb0VsZW1lbnQudmlkZW9IZWlnaHQoKSksIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwg
aW50ZXJmYWNlLT5mdWxsc2NyZWVuTW9kZSgpLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFu
ZGJ5KSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1l
bnQpCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIExP
RyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudCglcCkiLCB0aGlzKTsKICAgICBBU1NFUlQobV9wYWdlKTsKQEAgLTI5
NiwxMiArMzAwLDIwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkCiAKICAgICBhdXRvIGNvbnRl
eHRJZCA9IG1fdmlkZW9FbGVtZW50cy5nZXQoJnZpZGVvRWxlbWVudCk7CiAgICAgYXV0byYgaW50
ZXJmYWNlID0gZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCk7Ci0gICAgaW50ZXJmYWNlLnNldFRh
cmdldElzRnVsbHNjcmVlbihmYWxzZSk7CiAgICAgaWYgKGludGVyZmFjZS5hbmltYXRpb25TdGF0
ZSgpICE9IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5cGU6Ok5v
bmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludGVyZmFjZS5zZXRBbmltYXRpb25TdGF0ZShW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBlOjpGcm9tRnVsbHNj
cmVlbik7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlkZW9GcmFtZSh2aWRlb0Vs
ZW1lbnQpKSk7CisgICAgbV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkLCBpbmxpbmVW
aWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhp
cyksIHRoaXMsIGNvbnRleHRJZCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFzdWNjZXNz
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhdXRvJiBpbnRlcmZhY2UgPSBlbnN1cmVJbnRl
cmZhY2UoY29udGV4dElkKTsKKyAgICAgICAgaW50ZXJmYWNlLnNldFRhcmdldElzRnVsbHNjcmVl
bihmYWxzZSk7CisgICAgICAgIGludGVyZmFjZS5zZXRBbmltYXRpb25TdGF0ZShWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBlOjpGcm9tRnVsbHNjcmVlbik7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworICAgIH0pOwogfQogCiB2b2lkIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC0z
ODksMTkgKzQwMSwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJldHVyblZpZGVv
Q29udGVudExheWVyKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudAogICAgIH0pOwogfQogCisj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZFNldHVwRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0
SWQpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRT
ZXR1cEZ1bGxzY3JlZW4oJXAsICV4KSIsIHRoaXMsIGNvbnRleHRJZCk7CiAKICAgICBBU1NFUlQo
bV9wYWdlKTsKICAgICBhdXRvIFttb2RlbCwgaW50ZXJmYWNlXSA9IGVuc3VyZU1vZGVsQW5kSW50
ZXJmYWNlKGNvbnRleHRJZCk7Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCkpOwotICAgIH0p
OwotI2Vsc2UKICAgICBDQUxheWVyKiB2aWRlb0xheWVyID0gaW50ZXJmYWNlLT5sYXllckhvc3Rp
bmdDb250ZXh0KCktPnJvb3RMYXllcigpOwogCiAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKHZpZGVvTGF5ZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhp
cywgY29udGV4dElkXSAoKSBtdXRhYmxlIHsKQEAgLTQxMCw4ICs0MTYsOCBAQCB2b2lkIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllcgogICAgICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwotI2VuZGlmCiB9CisjZW5kaWYKIAogdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkKQogewpAQCAtNDQ1LDEzICs0NTEsMTMgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oUGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIKIAogICAgIHZpZGVvRWxlbWVudC0+ZGlkRW50ZXJGdWxsc2NyZWVuT3JQaWN0
dXJlSW5QaWN0dXJlKHNpemUudmFsdWVPcihXZWJDb3JlOjpGbG9hdFNpemUoKSkpOwogCi0gICAg
aWYgKGludGVyZmFjZS0+dGFyZ2V0SXNGdWxsc2NyZWVuKCkpCisgICAgaWYgKGludGVyZmFjZS0+
dGFyZ2V0SXNGdWxsc2NyZWVuKCkgfHwgaW50ZXJmYWNlLT5mdWxsc2NyZWVuU3RhbmRieSgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBleGl0IGZ1bGxzY3JlZW4gbm93IGlmIGl0IHdhcyBw
cmV2aW91c2x5IHJlcXVlc3RlZCBkdXJpbmcgYW4gYW5pbWF0aW9uLgogICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgdmlkZW9FbGVtZW50XSB7CiAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3Bh
Z2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQpOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZXhp
dFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgqdmlkZW9FbGVtZW50LCBbXShib29sKSB7
IH0pOwogICAgIH0pOwogfQogCkBAIC00NjksNyArNDc1LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllcgogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkp
OwogICAgIH0pOwogI2Vsc2UKLSAgICBtb2RlbC0+d2FpdEZvclByZXBhcmVkRm9ySW5saW5lVGhl
bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNvbnRleHRJZCwgaW50ZXJmYWNl
LCBtb2RlbF0gKCkgbXV0YWJsZSB7CisgICAgbW9kZWwtPndhaXRGb3JQcmVwYXJlZEZvcklubGlu
ZVRoZW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBjb250ZXh0SWQsIGludGVy
ZmFjZSwgbW9kZWxdKCkgbXV0YWJsZSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KSwgY29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IG1vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihuaWwsIFtwcm90ZWN0ZWRUaGlzID0gV1RG
TW92ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2VdICgpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dElkLCBpbnRl
cmZhY2VdIHsKQEAgLTUyNiw3ICs1MzIsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OnNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbgogICAg
IGVuc3VyZU1vZGVsKGNvbnRleHRJZCkuc2V0VmlkZW9MYXllckdyYXZpdHkoKE1lZGlhUGxheWVy
RW51bXM6OlZpZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpmdWxsc2NyZWVuV2lsbFJldHVyblRvSW5saW5lKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQordm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoUGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpCiB7CiAg
ICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYmYy
OWJlY2U3NTVlNmY1NTFmYzNjY2Y0NzcyZDc2ZDA1NjU2Mjk2OC4uMzdjODYyNjYwOWExZTYyY2Zh
NzdlYTZmODQ5Mjc1NTllYmI0YTAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIwNSw3ICsyMDUs
NyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICB2
b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpIGZpbmFsOwogICAg
IHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KSBmaW5hbDsKLSAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOworICAg
IHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmID0gW10oYm9v
bCkgeyB9KSBmaW5hbDsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0
QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOwogI2VuZGlmCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQppbmRleCBlMTE4MmJkNGQ1OTQwZjM1MWI3NmY4Y2YwNDE4YTdkZWUz
OWMyOTExLi42ZmQ3YTI2NTMyMTU1YzljOGQ1NzUzNjU1MTRlNGY0YTFhOGNiOGQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCkBAIC05OTMsMTQgKzk5MywxNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlk
ZQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCYgdmlkZW9FbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9F
bGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlmIChtX21vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKQogICAgICAgICB2aWRlb0VsZW1lbnQuZGlkU3RvcEJl
aW5nRnVsbHNjcmVlbkVsZW1lbnQoKTsKICAgICBlbHNlCiAgICAgICAgIFttX3dlYlZpZXcgX2V4
aXRWaWRlb0Z1bGxzY3JlZW5dOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMgICAgCisg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUp
OwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdp
dGhvdXRBbmltYXRpb24oSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdGFyZ2V0TW9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IGU1MzEwOTNkMjk1MTNiYzljZDk4NTczMTNlY2FjNDIzMmZmMmE3ZmEuLmY3
NDVkZDQ1OWMxNmIxNjQ1ZGEwNGRmNTMxYThmYjIyMmNmNDZkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtNzc2LDkgKzc3NiwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZQogICAgIG1f
d2ViVmlldy0+ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50KQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVu
dCYgdmlkZW9FbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIG1fd2ViVmlldy0+ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudCh2aWRlb0VsZW1lbnQpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYWM1Y2RkMjdlNzM4MzA1OGJmOTU3M2UxYjBl
NTRjNGY3NTk3MGVkNy4uOTYwMTllYTg1NDgxNmY5MjhmZDQ4YTU4ZDMyY2M2MmJkMmM2MTM0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KFZJREVPKQogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICAgICB2b2lkIGVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1l
bnQmLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUs
IGJvb2wpIGZpbmFsOwotICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBbXShib29sKSB7IH0pIGZpbmFsOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>