<?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>234379</bug_id>
          
          <creation_ts>2021-12-15 19:20:26 -0800</creation_ts>
          <short_desc>Remove more NPAPI plugin code</short_desc>
          <delta_ts>2022-03-07 14:09:43 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>237555</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824652</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-15 19:20:26 -0800</bug_when>
    <thetext>Remove more NPAPI plugin code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824653</commentid>
    <comment_count>1</comment_count>
      <attachid>447315</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-15 19:20:59 -0800</bug_when>
    <thetext>Created attachment 447315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824776</commentid>
    <comment_count>2</comment_count>
      <attachid>447360</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-16 09:01:05 -0800</bug_when>
    <thetext>Created attachment 447360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824905</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-16 16:17:51 -0800</bug_when>
    <thetext>Committed r287163 (245339@main): &lt;https://commits.webkit.org/245339@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447360.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824934</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-16 18:21:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/86607863&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447315</attachid>
            <date>2021-12-15 19:20:59 -0800</date>
            <delta_ts>2021-12-16 09:01:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234379-20211215192058.patch</filename>
            <type>text/plain</type>
            <size>33553</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJjZTIwOTRlMTBjYmYz
NzE5MGQ1ZTYzOTI0NDU0OTc0ZmIxNDhjNy4uMjUxYThlZWM3M2Q0ZTgzZTc0MzY4Yzk5N2QwODAw
MjhmNTAzYjE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEyLTE1ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IG1vcmUgTlBBUEkgcGx1Z2luIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNDM3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBwbHVn
aW5zL1BsdWdpblZpZXdCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3QmFzZTo6
c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXdCYXNlOjpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlld0Jhc2U6OmdldEZvcm1WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3QmFzZTo6c2hvdWxkTm90QWRkTGF5ZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKwog
MjAyMS0xMi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlIGluIFBsdWdpbiBhbmQgUGx1Z2luQ29u
dHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiOTQ0MjIyMDFhZmI0MDljNzY0ZGE2NWIyZjlhZTIxMzg5NzZk
OTJiLi5iNjBlMWY4MzYwMmYyODI3MDM1ZDQzZmMxY2U3ZDhlZjE0NjJhZWIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG1vcmUgTlBBUEkgcGx1Z2luIGNvZGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDM3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjppbnRlcnByZXRLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnB1
dENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2
YWxlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5RG93bik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZVBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnRyeUhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0No
YW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dHJ5UG9zdFBy
b2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bik6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1
c0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW46OmNhbkNyZWF0ZVRyYW5zaWVudFBhaW50aW5nU25hcHNob3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9s
bGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpkZXN0cm95UGx1Z2luQW5kUmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzaG91bGRDcmVhdGVUcmFuc2llbnRQYWludGluZ1NuYXBz
aG90IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0
SW5wdXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpwcml2YXRlQnJv
d3NpbmdTdGF0ZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3
OjpnZXRGb3JtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpz
aG91bGROb3RBZGRMYXllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWNjZXNzaWJp
bGl0eVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9Q
bHVnaW4pOiBEZWxldGVkLgorCiAyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUgaW4g
UGx1Z2luIGFuZCBQbHVnaW5Db250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuY3BwCmluZGV4IGVjNmFmNjZkYTQzM2ZhMWVjMDM0ODEwZmQyOTUzMDhjMDRmZDkw
ZDEuLmU5M2Q3NTVmMzBhNGRkODFiOGY5MTUzODU4YjVjMzdkY2M3ZDBjMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC00NjIsMjMgKzQ2Miw2IEBAIHZv
aWQgSFRNTE9iamVjdEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGRE
b2N1bWVudCwgRG9jdW1lbnQmIG5lCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGlkTW92
ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKIH0KIAotYm9vbCBIVE1M
T2JqZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmIGZvcm1EYXRhKQotewot
ICAgIGlmIChuYW1lKCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAv
LyBVc2UgUGx1Z2luTG9hZGluZ1BvbGljeTo6RG9Ob3RMb2FkIGhlcmUgb3IgaXQgd291bGQgZmly
ZSBKUyBldmVudHMgc3luY2hyb25vdXNseQotICAgIC8vIHdoaWNoIHdvdWxkIG5vdCBiZSBzYWZl
IGhlcmUuCi0gICAgUmVmUHRyIHdpZGdldCA9IHBsdWdpbldpZGdldChQbHVnaW5Mb2FkaW5nUG9s
aWN5OjpEb05vdExvYWQpOwotICAgIGlmICghaXM8UGx1Z2luVmlld0Jhc2U+KHdpZGdldCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTdHJpbmcgdmFsdWU7Ci0gICAgaWYgKCFkb3duY2Fz
dDxQbHVnaW5WaWV3QmFzZT4oKndpZGdldCkuZ2V0Rm9ybVZhbHVlKHZhbHVlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGZvcm1EYXRhLmFwcGVuZChuYW1lKCksIHZhbHVlKTsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6Y2FuQ29udGFpblJhbmdl
RW5kUG9pbnQoKSBjb25zdAogewogICAgIC8vIENhbGwgdGhyb3VnaCB0byBIVE1MRWxlbWVudCBi
ZWNhdXNlIEhUTUxQbHVnSW5FbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IGQ4MzMxNjk4ZDM1ZGI5OTYxODEx
NzkzOTBlZWZjMzk0OWY1Njg2YTAuLmJlYTU2MGI2NTJkZGFhM2JmMzIyZDBhNjhmNTMyMmE1OGE3
Yzg0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTk5LDcg
Kzk5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBhcHBlbmRGb3JtRGF0YShET01Gb3Jt
RGF0YSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA0ZjJmMGQ3NjlhZWQwOWFjYmYzMmIwYTYz
NzJjMTNmMDMzZjEyMDEwLi4zOWZiMDI3ZTQ2NmZhNzJmYjBjZGM5ZTQzNTA2MTBmZjZiYTZlNWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMwNDcsMTIgKzMwNDcsNiBAQCB2b2lkIFBhZ2U6OnNl
dFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgZm9yRWFjaERvY3VtZW50
KFsmXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRvY3VtZW50LnByaXZhdGVCcm93
c2luZ1N0YXRlRGlkQ2hhbmdlKG1fc2Vzc2lvbklEKTsKICAgICB9KTsKLQotICAgIC8vIENvbGxl
Y3QgdGhlIFBsdWdpblZpZXdzIGluIHRvIGEgdmVjdG9yIHRvIGVuc3VyZSB0aGF0IGFjdGlvbiB0
aGUgcGx1Zy1pbiB0YWtlcwotICAgIC8vIGZyb20gYmVsb3cgcHJpdmF0ZUJyb3dzaW5nU3RhdGVD
aGFuZ2VkIGRvZXMgbm90IGFmZmVjdCB0aGVpciBsaWZldGltZS4KLQotICAgIGZvciAoYXV0byYg
dmlldyA6IHBsdWdpblZpZXdzKCkpCi0gICAgICAgIHZpZXctPnByaXZhdGVCcm93c2luZ1N0YXRl
Q2hhbmdlZChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiB9CiAKICNpZiBFTkFCTEUoV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5o
CmluZGV4IGU2NDgzYjA4Mzk2YTE1Njc1ZWMzY2ZlYjIwYjFiZjI0NjE5NDM5NTguLmNjMzBmOWVk
NzAwYWE3Yzc5YmZkMjMwZTYzNTQyNWZlN2Q0ZjJlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXdCYXNlLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCopIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gQSBwbHVnLWluIGNhbiBhc2sgV2Vi
S2l0IHRvIGhhbmRsZSBzY3JvbGxiYXJzIGZvciBpdC4KQEAgLTczLDcgKzcxLDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb25Gcm9tRHJhZ3MoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBpc1BsdWdpblZpZXdCYXNlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RBZGRM
YXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIEF1ZGlvSGFyZHdh
cmVBY3Rpdml0eVR5cGUgYXVkaW9IYXJkd2FyZUFjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gQXVk
aW9IYXJkd2FyZUFjdGl2aXR5VHlwZTo6VW5rbm93bjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDY5NTBhMWUwZTUzMjAxODEw
N2Q1ZmRmOGE1YTdiYmM1MTcwNTQwMzIuLmNmMTBhNDRjYmVhMDdhOGIzZGUzMzcyMWVjZjdkODFk
NjU0MjUzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCkBAIC0xMDc0LDggKzEwNzQsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlQ29uZmlndXJhdGlvbihjb25zdCBSZW5kZXJMYXllciogY29tcG9zaXRpbmdBbmNlcwog
ICAgICAgICAgICAgcGx1Z2luVmlld0Jhc2UtPmF0dGFjaFBsdWdpbkxheWVyKCk7CiAgICAgICAg
IH0KICNlbHNlCi0gICAgICAgIGlmICghcGx1Z2luVmlld0Jhc2UtPnNob3VsZE5vdEFkZExheWVy
KCkpCi0gICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxh
eWVyKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRl
bnRzTGF5ZXJQdXJwb3NlOjpQbHVnaW4pOworICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENv
bnRlbnRzVG9QbGF0Zm9ybUxheWVyKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCksIEdy
YXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJQdXJwb3NlOjpQbHVnaW4pOwogI2VuZGlmCiAgICAg
fQogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oCmluZGV4IDEyNDE3ODNiY2NjZWEwMDk1YTZlZGJiZDJkNjk2YTZiZTFmNGQ1MzIu
LmU4NTFjYWI4MmM3NDI5ZjViOTQ2ZTlhYmE3ZDJkODgwMDU5NjU2MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMzM4LDEyICszMzgsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXNldFNlY3VyZUlucHV0U3RhdGUoKTsKICAgICBib29sIGluU2Vj
dXJlSW5wdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5TZWN1cmVJbnB1dFN0YXRlOyB9CiAg
ICAgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7Ci0g
ICAgdm9pZCBkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7Ci0gICAgYm9vbCBo
YW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICopOwotICAgIGJvb2wg
dHJ5SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oTlNFdmVudCAqKTsKLSAgICB2
b2lkIHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0Fu
ZFdpbmRvd0hhc0ZvY3VzLCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
cik7Ci0gICAgYm9vbCB0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3du
KE5TRXZlbnQgKik7Ci0gICAgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOyB9
CiAgICAgCiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dChjb25zdCBTdHJp
bmcmKTsKICAgICBOU0ludGVnZXIgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKTsKQEAgLTc4NCw5
ICs3NzgsNiBAQCBwcml2YXRlOgogCiAgICAgVmFsaWRhdGlvbk1hcCBtX3ZhbGlkYXRpb25NYXA7
CiAKLSAgICAvLyBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGx1Zy1pbiB3ZSB3YW50IHRvIHNlbmQg
Y29tcGxleCB0ZXh0IGlucHV0IHRvLCBvciAwIGlmIHRoZXJlIGlzIG5vbmUuCi0gICAgdWludDY0
X3QgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciB7IDAgfTsKLQogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcj4gbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3Mzc0OGNhZjE0ZWIxMzBl
MDc0NTM3MTJhNGUwMzdkZmY0NTViYTdjLi4yY2VhOTcwZGE3ODI5ZmI3MGU1NTNiN2Y1MTBiYzUz
OTk4MmMxYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtMjc2OCw1NCArMjc2OCw2IEBAIHZvaWQgV2ViVmlld0ltcGw6Om5vdGlmeUlucHV0
Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKQogICAgIFtbbV92aWV3IF93ZWJfc3Vw
ZXJJbnB1dENvbnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsgLy8gSW5mb3JtIHRoZSBpbnB1dCBt
ZXRob2QgdGhhdCB3ZSB3b24ndCBoYXZlIGFuIGlubGluZSBpbnB1dCBhcmVhIGRlc3BpdGUgaGF2
aW5nIGJlZW4gYXNrZWQgdG8uCiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmRpc2FibGVDb21wbGV4
VGV4dElucHV0SWZOZWNlc3NhcnkoKQotewotfQotCi1ib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVQ
bHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICopCi17Ci0gICAgcmV0dXJuIE5P
OwotfQotCi1ib29sIFdlYlZpZXdJbXBsOjp0cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0
S2V5RG93bihOU0V2ZW50ICopCi17Ci0gICAgcmV0dXJuIE5POwotfQotCi12b2lkIFdlYlZpZXdJ
bXBsOjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNB
bmRXaW5kb3dIYXNGb2N1cywgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIpCi17Ci0gICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6
Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7Ci0gICAgYm9vbCBpbnB1dFNvdXJjZUNo
YW5nZWQgPSAhIW1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI7Ci0KLSAgICBpZiAo
cGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgewotICAgICAgICAvLyBDaGVjayBpZiB3
ZSdyZSBhbHJlYWR5IGFsbG93aW5nIHRleHQgaW5wdXQgZm9yIHRoaXMgcGx1Zy1pbi4KLSAgICAg
ICAgaWYgKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyID09IG1fcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbV9w
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciA9IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyOwotCi0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQ2hlY2sgaWYgd2UgZ290IGEg
cmVxdWVzdCB0byB1bmZvY3VzIGEgcGx1Zy1pbiB0aGF0IGlzbid0IGZvY3VzZWQuCi0gICAgICAg
IGlmIChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciAhPSBtX3BsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgPSAwOwotICAgIH0KLQotICAgIGlmIChpbnB1
dFNvdXJjZUNoYW5nZWQpIHsKLSAgICAgICAgLy8gVGhlIGlucHV0IHNvdXJjZSBjaGFuZ2VkOyBk
aXNjYXJkIGFueSBlbnRlcmVkIHRleHQuCi0gICAgICAgIFtbV0tUZXh0SW5wdXRXaW5kb3dDb250
cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXJdIHVubWFya1RleHRdOwotICAg
IH0KLQotICAgIC8vIFRoaXMgd2lsbCBmb3JjZSB0aGUgY3VycmVudCBpbnB1dCBjb250ZXh0IHRv
IGJlIHVwZGF0ZWQgdG8gaXRzIGNvcnJlY3QgdmFsdWUuCi0gICAgW05TQXBwIHVwZGF0ZVdpbmRv
d3NdOwotfQotCi1ib29sIFdlYlZpZXdJbXBsOjp0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQgKikKLXsKLSAgICByZXR1cm4gTk87Ci19Ci0KIHZvaWQg
V2ViVmlld0ltcGw6OmhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRpdmVUZXh0KGNvbnN0IFN0cmluZyYg
YWNjZXB0ZWRBbHRlcm5hdGl2ZSkKIHsKICAgICBtX3BhZ2UtPmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOwpAQCAtNDk0MCw5ICs0ODkyLDYgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBldmVu
dFdhc0hhbmRsZWQpCiAgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICh0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKGV2ZW50KSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGV2ZW50
V2FzSGFuZGxlZCkgewogICAgICAgICBbTlNDdXJzb3Igc2V0SGlkZGVuVW50aWxNb3VzZU1vdmVz
OllFU107CiAgICAgICAgIHJldHVybjsKQEAgLTUwMzcsMTMgKzQ5ODYsNiBAQCBWZWN0b3I8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiBXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0
Q29tbWFuZHNGb3JFdgogCiB2b2lkIFdlYlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVudChOU0V2
ZW50ICpldmVudCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXIpKEJPT0wgaGFuZGxlZCwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSkKIHsKLSAgICAvLyBG
b3IgcmVndWxhciBXZWIgY29udGVudCwgaW5wdXQgbWV0aG9kcyBydW4gYmVmb3JlIHBhc3Npbmcg
YSBrZXlkb3duIHRvIERPTSwgYnV0IHBsdWctaW5zIGdldCBhbiBvcHBvcnR1bml0eSB0byBoYW5k
bGUgdGhlIGV2ZW50IGZpcnN0LgotICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8gY29sbGVjdCBj
b21tYW5kcywgYXMgdGhlIHBsdWctaW4gY2Fubm90IGV4ZWN1dGUgdGhlbS4KLSAgICBpZiAocGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihOTywgeyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmICghaW5wdXRD
b250ZXh0KCkpIHsKICAgICAgICAgYXV0byBjb21tYW5kcyA9IGNvbGxlY3RLZXlib2FyZExheW91
dENvbW1hbmRzRm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOTywg
Y29tbWFuZHMpOwpAQCAtNTI1NSwxMSArNTE5Nyw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYXJh
Y3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCBwb2ludCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXIp
CiAKIE5TVGV4dElucHV0Q29udGV4dCAqV2ViVmlld0ltcGw6OmlucHV0Q29udGV4dCgpCiB7Ci0g
ICAgaWYgKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgQVNT
RVJUKCFtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOyAvLyBTaG91bGQgbm90IGdldCBoZXJl
IGZyb20gLV9pbnRlcnByZXRLZXlFdmVudDpjb21wbGV0aW9uSGFuZGxlcjosIHdlIG9ubHkgdXNl
IFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBhZnRlciBnaXZpbmcgdGhlIHBsdWctaW4gYSBj
aGFuY2UgdG8gaGFuZGxlIGtleWRvd24gbmF0aXZlbHkuCi0gICAgICAgIHJldHVybiBbW1dLVGV4
dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSBp
bnB1dENvbnRleHRdOwotICAgIH0KLQogICAgIC8vIERpc2FibGUgdGV4dCBpbnB1dCBtYWNoaW5l
cnkgd2hlbiBpbiBub24tZWRpdGFibGUgY29udGVudC4gQW4gaW52aXNpYmxlIGlubGluZSBpbnB1
dCBhcmVhIGFmZmVjdHMgcGVyZm9ybWFuY2UsIGFuZCBjYW4gcHJldmVudCBFeHBvc2UgZnJvbSB3
b3JraW5nLgogICAgIGlmICghbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxl
KQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtNTM3MCw4ICs1MzA3LDYgQEAgYm9vbCBXZWJWaWV3
SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIHJldHVy
biBbbV92aWV3IF93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CiAgICAgfQog
Ci0gICAgZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeSgpOwotCiAgICAgLy8gUGFz
cyBrZXkgY29tYm9zIHRocm91Z2ggV2ViQ29yZSBpZiB0aGVyZSBpcyBhIGtleSBiaW5kaW5nIGF2
YWlsYWJsZSBmb3IKICAgICAvLyB0aGlzIGV2ZW50LiBUaGlzIGxldHMgd2VicGFnZXMgaGF2ZSBh
IGNyYWNrIGF0IGludGVyY2VwdGluZyBrZXktbW9kaWZpZWQga2V5cHJlc3Nlcy4KICAgICAvLyBG
SVhNRTogV2h5IGlzIHRoZSBmaXJzdFJlc3BvbmRlciBjaGVjayBuZWVkZWQ/CkBAIC01NDA4LDEx
ICs1MzQzLDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihOU0V2ZW50ICpldmVudCkKIAog
ICAgIExPRyhUZXh0SW5wdXQsICJrZXlEb3duOiVwICVAJXMiLCBldmVudCwgZXZlbnQsIChldmVu
dCA9PSBtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSA/ICIgKHJlLXNlbnQpIiA6ICIiKTsKIAot
ICAgIGlmICh0cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihldmVudCkpIHsK
LSAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLmhhbmRsZWQgYnkgcGx1Zy1pbiIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gV2UgY291bGQgYmUgcmVjZWl2aW5nIGEga2V5IGRv
d24gZnJvbSBBcHBLaXQgaWYgd2UgaGF2ZSByZS1zZW50IGFuIGV2ZW50CiAgICAgLy8gdGhhdCBt
YXBzIHRvIGFuIGFjdGlvbiB0aGF0IGlzIGN1cnJlbnRseSB1bmF2YWlsYWJsZSAoZm9yIGV4YW1w
bGUgYSBjb3B5IHdoZW4KICAgICAvLyB0aGVyZSBpcyBubyByYW5nZSBzZWxlY3Rpb24pLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDljNjU2MTdiODk2YjE1ZjlmNDdhMWQx
NDQ4MGY2ZTM1Y2I2ZWZmZDEuLjViNTI5ZmZkOGMyMmQ2ZGUwMzJjYzg5ZWE3MDliMTJjMzc4YjEz
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTQyMiw3ICs0MjIsNiBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQg
cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0VHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVw
bGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxh
Y2VtZW50U3RyaW5ncykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBh
bmVsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpID0gMDsKICAg
ICB2aXJ0dWFsIFN0cmluZyBkaXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihXZWJDb3JlOjpSZWFz
b25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDNiMzc2MWE3ZTc3MWEwY2JmYTE2NTMzMGJiNzM3OWZhOWM3
ZmU5NGMuLjc3ZmQ0Yjc5NDA2Y2VhMzQwMDdhZDhjNGRmMzYxZTk4NmZkMjMzY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05NTYsOCArOTU2LDYgQEAgcHVibGlj
OgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVz
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVz
KTsKICAgICB2b2lkIHNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShib29sKTsKLSAgICAgICAgCi0g
ICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgYm9v
bCBzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYp
OwogCiAgICAgdm9pZCBzZXRSZW1vdGVMYXllclRyZWVSb290Tm9kZShSZW1vdGVMYXllclRyZWVO
b2RlKik7CkBAIC0yMzY1LDEwICsyMzYzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRmlu
aXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKLSNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICB2b2lkIHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNB
bmRXaW5kb3dIYXNGb2N1cyk7Ci0jZW5kaWYKLQogI2lmIFVTRShBVVRPTUFUSUNfVEVYVF9SRVBM
QUNFTUVOVCkKICAgICB2b2lkIHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCk7CiAgICAgdm9pZCB0
b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU1ZjhmNWY1MGE0YmZiMzU1
Y2Q3NTgyNDBhZDFhN2ExM2NiZTdhOTEuLjU3NGFlMDcxZGI0ZDIxYWJiNGY1OWM5NTkzMTVmMDE1
ODUwNjBjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KQEAgLTMyNyw5ICszMjcsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgICMgUmVtb3RlIGFjY2Vzc2liaWxpdHkgbWVzc2FnZXMKICAgICBSZWdpc3RlcldlYlBy
b2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW4oSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAKLSAgICAj
IFBsdWctaW4gY29tcGxleCB0ZXh0IGlucHV0IHN1cHBvcnQgbWVzc2FnZXMKLSAgICBQbHVnaW5G
b2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpCi0KICAgICAj
IFNwZWVjaCBtZXNzYWdlcwogICAgIEdldElzU3BlYWtpbmcoKSAtPiAoYm9vbCBpc1NwZWFraW5n
KSBTeW5jaHJvbm91cwogICAgIFNwZWFrKFN0cmluZyBzdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAxMjhhYTM5NDM3NDQ5MDI4
MzAwYjg5ZjYwMWE5OGE4MTM3Y2RkNjBiLi4wNTc5OGU5ZGMwZWFhMzkyYTU5YmZhNzNkYTY3Njg4
MDhjMzdjOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KQEAgLTc2MywxMSArNzYzLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVy
VUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vucyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlU
b2tlbnMoZWxlbWVudFRva2VuLCB3aW5kb3dUb2tlbikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCwgYm9vbCkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZVNhdmVk
Q29tbWFuZEJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA4
M2RiNzZlMGQwMWZlMjZmNmFhYzJmOWJkZDdiY2QwNmYwMGU4NTEyLi5hYTU3ZWEwZjZjZjViZTY3
MWVjZTQ5Mzg5ODYyMWIyYTRjZWY1M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMTczLDggKzE3Myw2IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcGx1Z2luRm9jdXNPcldpbmRv
d0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwg
Ym9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKSBvdmVycmlkZTsKLQogICAgIHZv
aWQgbWFrZUZpcnN0UmVzcG9uZGVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhc3Npc3RpdmVUZWNo
bm9sb2d5TWFrZUZpcnN0UmVzcG9uZGVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTaG91bGRT
dXBwcmVzc0ZpcnN0UmVzcG9uZGVyQ2hhbmdlcyhib29sIHNob3VsZFN1cHByZXNzKSBvdmVycmlk
ZSB7IG1fc2hvdWxkU3VwcHJlc3NGaXJzdFJlc3BvbmRlckNoYW5nZXMgPSBzaG91bGRTdXBwcmVz
czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lm1tCmluZGV4IDRhMDgwYjJjMTcxNTE0NWM0MTcyZjg3OTA4YWI0ZTFiOTc5MjhjZTkuLjc1NjE4
NGFmNmNkOTk0NmE1Zjk0N2RmOTBkZDllNmJmYjQ0ZTBlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTY1NCwxMSArNjU0LDYg
QEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29y
ZShjb25zdCBOYXRpdmVXZWJHZXN0dXJlRXYKIH0KICNlbmRpZgogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9j
dXMpCi17Ci0gICAgbV9pbXBsLT5wbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHBsdWdp
bkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMsIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyKTsKLX0KLQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29r
dXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKIHsKICAg
ICBtX2ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCBiNGNlYWVlNjczOWMwMzU0
MTViZTI4MmRjNGI5Njg0NWNmMWVhNzkwLi4xZTVlMzA0Mzg0NDMyMmVhNWY1MTI0NmFhYTk1MmMz
Y2QxODlkMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0KQEAgLTI4OSwxNSArMjg5LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFByb21p
c2VkRGF0YUZvckltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFMKIAog
I2VuZGlmCiAKLS8vIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KLXZv
aWQgV2ViUGFnZVByb3h5OjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkK
LXsKLSAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCi0gICAgICAgIHJldHVybjsKLSAgICAK
LSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2lu
KHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCB0ZXh0SW5wdXQpKTsKLX0KLQogdm9p
ZCBXZWJQYWdlUHJveHk6OnVwcGVyY2FzZVdvcmQoKQogewogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlVwcGVyY2FzZVdvcmQoKSk7CkBAIC0zNTksMTEgKzM1MCw2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVnaXN0ZXJVSVByb2Nl
c3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNB
bmRXaW5kb3dIYXNGb2N1cykKLXsKLSAgICBwYWdlQ2xpZW50KCkucGx1Z2luRm9jdXNPcldpbmRv
d0ZvY3VzQ2hhbmdlZChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgcGx1Z2luSGFz
Rm9jdXNBbmRXaW5kb3dIYXNGb2N1cyk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRl
U2F2ZWRDb21tYW5kQnlTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIE1FU1NBR0Vf
Q0hFQ0soaXNWYWxpZEtleXByZXNzQ29tbWFuZE5hbWUoc2VsZWN0b3IpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCBmOTJlNjE3
NmNiMGM2NGMzZDY2MTk1YzJhNzNjNWFkNDMzYTU2YTUwLi44ZDJjNWYzZTI1Y2ExYTIzNzhlNWUz
MDA1ZDc1NDkyYmVhZjBiMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC0xOTcsMTQgKzE5NywxMSBAQCBwcml2YXRlOgogICAg
IHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogICAgIHZvaWQgd2luZG93
QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJ
blNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldp
bmRvd0Nvb3JkaW5hdGVzKSBmaW5hbCB7IH0KICAgICB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFu
Z2VkKGJvb2wpIGZpbmFsIHsgfQotICAgIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIHZvaWQgc2VuZENvbXBs
ZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpIGZpbmFsIHsgfQogICAgIHZvaWQg
c2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKSBmaW5hbCB7IH0KICAgICBXZWJD
b3JlOjpTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxiYXIoKSBmaW5hbCB7IHJldHVybiBtX2hv
cml6b250YWxTY3JvbGxiYXIuZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRp
Y2FsU2Nyb2xsYmFyKCkgZmluYWwgeyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQoKTsg
fQogICAgIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQot
ICAgIHZvaWQgcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQotICAg
IGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYgZm9ybVZhbHVlKSBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaGFuZGxlU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2Vi
Q29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpIGZpbmFsOwogICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFn
bWVudGVkU2hhcmVkQnVmZmVyPiBsaXZlUmVzb3VyY2VEYXRhKCkgY29uc3QgZmluYWw7CiAgICAg
dm9pZCB3aWxsRGV0YWNoUmVuZGVyZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmgKaW5kZXggZmIyZDE0ZDQxOWJlNmYzNTI1YjdiZDZhZDA3MTBiYjVm
ZjkyNmRjOC4uMWQ4NDQ4MDVmNGMxMGU5M2ZlZGNhYmRlZWMyMWRkMzVkZGY4ODIwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKQEAgLTIyNyw5ICsyMjcsNiBA
QCBwdWJsaWM6CiAgICAgLy8gVGVsbHMgdGhlIHBsdWctaW4gYWJvdXQgd2luZG93IGFuZCBwbHVn
LWluIGZyYW1lIGNoYW5nZXMuCiAgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXND
aGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGlu
YXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cykgPSAwOwogCi0gICAgLy8gR2V0IHRoZSBwZXIgY29tcGxleCB0ZXh0IGlucHV0IGlkZW50aWZp
ZXIuCi0gICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
cigpIGNvbnN0ID0gMDsKLQogICAgIC8vIFNlbmQgdGhlIGNvbXBsZXggdGV4dCBpbnB1dCB0byB0
aGUgcGx1Zy1pbi4KICAgICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3Qg
U3RyaW5nJiB0ZXh0SW5wdXQpID0gMDsKIApAQCAtMjQzLDEyICsyNDAsNiBAQCBwdWJsaWM6CiAg
ICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHN0b3JhZ2UgYmxvY2tpbmcgcG9saWN5IGZvciB0aGlzIHBs
dWctaW4gY2hhbmdlcy4KICAgICB2aXJ0dWFsIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFu
Z2VkKGJvb2wpID0gMDsKIAotICAgIC8vIENhbGxlZCB3aGVuIHRoZSBwcml2YXRlIGJyb3dzaW5n
IHN0YXRlIGZvciB0aGlzIHBsdWctaW4gY2hhbmdlcy4KLSAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0
ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wpID0gMDsKLQotICAgIC8vIEdldHMgdGhlIGZvcm0g
dmFsdWUgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBwbHVnLWluLCBsZXR0aW5nIHBsdWctaW5zIHBh
cnRpY2lwYXRlIGluIGZvcm0gc3VibWlzc2lvbi4KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZh
bHVlKFN0cmluZyYgZm9ybVZhbHVlKSA9IDA7Ci0KICAgICAvLyBUZWxscyB0aGUgcGx1Zy1pbiB0
aGF0IGl0IHNob3VsZCBzY3JvbGwuIFRoZSBwbHVnLWluIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiBp
dCBkaWQgc2Nyb2xsLgogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVTY3JvbGwoV2ViQ29yZTo6U2Ny
b2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSkgPSAwOwogCkBAIC0yODAs
OCArMjcxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG11dGVkU3RhdGVDaGFuZ2Vk
KGJvb2wpIHsgfQogCi0gICAgdmlydHVhbCBib29sIGNhbkNyZWF0ZVRyYW5zaWVudFBhaW50aW5n
U25hcHNob3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgcmVx
dWlyZXNVbmlmaWVkU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCmluZGV4IDk5ZTQ1ZmVi
MjJjNGIxNTU1MjY2MjYzODk2NjU0YzM1NDdhY2JlNzkuLmNkMzZmOGIyYjVjNWUzMjIyMmQ3ZTIz
NDQ2MmNlMzIzZGU4Zjg5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKQEAgLTQ4LDExICs0OCw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZFVSTCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYg
bWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiB0YXJnZXQsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIGhl
YWRlckZpZWxkcywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBodHRwQm9keSwgYm9vbCBhbGxvd1Bv
cHVwcykgPSAwOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgLy8gVGVsbHMgdGhlIGNvbnRy
b2xsZXIgdGhhdCB0aGUgcGx1Zy1pbiBmb2N1cyBvciB3aW5kb3cgZm9jdXMgZGlkIGNoYW5nZS4K
LSAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZChib29sKSA9
IDA7Ci0jZW5kaWYKLQogICAgIC8vIFJldHVybnMgdGhlIGNvbnRlbnRzIHNjYWxlIGZhY3Rvci4K
ICAgICB2aXJ0dWFsIGZsb2F0IGNvbnRlbnRzU2NhbGVGYWN0b3IoKSA9IDA7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYWY2MDM4
YjUzN2Y4MDYzYzRkZWQ0MGVhZGNmNTYyMmEyMTIzNDY1Mi4uNTM0ZGE1MmQ0N2Q2Mjg1MGUyMDVm
ZjllOTljMzBiMzdkM2JjYmExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTMyMiwxMSArMzIyLDYgQEAgdm9pZCBQbHVnaW5WaWV3
OjpkZXN0cm95UGx1Z2luQW5kUmVzZXQoKQogCiAgICAgICAgIG1fcGVuZGluZ1VSTFJlcXVlc3Rz
LmNsZWFyKCk7CiAgICAgICAgIG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXIuc3RvcCgpOwotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIGlmIChtX3dlYlBhZ2UpCi0gICAgICAgICAgICBw
bHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGZhbHNlKTsKLSNlbmRpZgogICAgIH0KIAog
ICAgIGNhbmNlbEFsbFN0cmVhbXMoKTsKQEAgLTQ5NywxOCArNDkyLDYgQEAgdm9pZCBQbHVnaW5W
aWV3Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBGbG9hdFJlY3QmIHdpbmRvd0Zy
YW1lSW5TY3JlZW4KICAgICBtX3BsdWdpbi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoZW5j
bG9zaW5nSW50UmVjdCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMpLCBlbmNsb3NpbmdJ
bnRSZWN0KHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpKTsKIH0KIAotYm9vbCBQbHVnaW5W
aWV3OjpzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCi17Ci0gICAgaWYgKCFtX3BsdWdp
bikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllcigpICE9IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX3BsdWdpbi0+c2VuZENvbXBsZXhU
ZXh0SW5wdXQodGV4dElucHV0KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLSAgICAKIGlkIFBsdWdp
blZpZXc6OmFjY2Vzc2liaWxpdHlBc3NvY2lhdGVkUGx1Z2luUGFyZW50Rm9yRWxlbWVudChFbGVt
ZW50KiBlbGVtZW50KSBjb25zdAogewogICAgIGlmICghbV9wbHVnaW4pCkBAIC02MzUsMjQgKzYx
OCw2IEBAIHZvaWQgUGx1Z2luVmlldzo6c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKICAg
ICBtX3BsdWdpbi0+c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKHN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2Vk
KGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLXsKLSAgICAvLyBUaGUgcGx1Zy1pbiBjYW4g
YmUgbnVsbCBoZXJlIGlmIGl0IGZhaWxlZCB0byBpbml0aWFsaXplLgotICAgIGlmICghbV9pc0lu
aXRpYWxpemVkIHx8ICFtX3BsdWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wbHVnaW4t
PnByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKLX0K
LQotYm9vbCBQbHVnaW5WaWV3OjpnZXRGb3JtVmFsdWUoU3RyaW5nJiBmb3JtVmFsdWUpCi17Ci0g
ICAgLy8gVGhlIHBsdWctaW4gY2FuIGJlIG51bGwgaGVyZSBpZiBpdCBmYWlsZWQgdG8gaW5pdGlh
bGl6ZS4KLSAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX3BsdWdpbi0+Z2V0Rm9ybVZhbHVlKGZvcm1WYWx1
ZSk7Ci19Ci0KIGJvb2wgUGx1Z2luVmlldzo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIC8vIFRoZSBwbHVnLWlu
IGNhbiBiZSBudWxsIGhlcmUgaWYgaXQgZmFpbGVkIHRvIGluaXRpYWxpemUuCkBAIC04ODksMTEg
Kzg1NCw2IEBAIGJvb2wgUGx1Z2luVmlldzo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uRnJvbURyYWdz
KCkgY29uc3QKICAgICByZXR1cm4gbV9wbHVnaW4tPnNob3VsZEFsbG93TmF2aWdhdGlvbkZyb21E
cmFncygpOwogfQogCi1ib29sIFBsdWdpblZpZXc6OnNob3VsZE5vdEFkZExheWVyKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgUGx1Z2luVmlldzo6d2lsbERldGFjaFJl
bmRlcmVyKCkKIHsKICAgICBpZiAoIW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCkBAIC0x
MjgyLDE0ICsxMjQyLDYgQEAgdm9pZCBQbHVnaW5WaWV3Ojpsb2FkVVJMKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFN0cmluZyYKICAgICBtX3BlbmRpbmdV
UkxSZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCi0jaWYgUExBVEZPUk0oQ09D
T0EpCi12b2lkIFBsdWdpblZpZXc6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9v
bCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKQotewotICAgIGlmIChtX3dlYlBhZ2Up
Ci0gICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQbHVnaW5G
b2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKG1fcGx1Z2luLT5wbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcigpLCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKSk7Ci19Ci0jZW5k
aWYKLQogZmxvYXQgUGx1Z2luVmlldzo6Y29udGVudHNTY2FsZUZhY3RvcigpCiB7CiAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpIDogMCkKQEAgLTEzMzIsOSAr
MTI4NCw2IEBAIGJvb2wgUGx1Z2luVmlldzo6c2hvdWxkQ3JlYXRlVHJhbnNpZW50UGFpbnRpbmdT
bmFwc2hvdCgpIGNvbnN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIW1fcGx1Z2luLT5j
YW5DcmVhdGVUcmFuc2llbnRQYWludGluZ1NuYXBzaG90KCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggYmZhZTFjYzg0ODhiNDUzYTkzNjFlYzI3ZWJhMTNj
ZWM3ZDZhZWI0OC4uZjY2MzEyYTgwYWNkMWUwMzUzMTBkZmFhM2E1ZjNhMTdiNzJhYWU1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtODMs
NyArODMsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXREZXZp
Y2VTY2FsZUZhY3RvcihmbG9hdCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRl
cywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVz
KTsKLSAgICBib29sIHNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgUmV0YWlu
UHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nKCkgY29uc3QgeyByZXR1cm4g
bV9wbHVnaW4tPnBkZkRvY3VtZW50Rm9yUHJpbnRpbmcoKTsgfQogICAgIGlkIGFjY2Vzc2liaWxp
dHlIaXRUZXN0KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9wbHVnaW4tPmFjY2Vzc2liaWxpdHlIaXRUZXN0KHBvaW50KTsgfQogICAgIGlk
IGFjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKQEAgLTE1NCwxNCArMTUzLDEx
IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3QoSlND
OjpKU0dsb2JhbE9iamVjdCopIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcmFnZUJsb2NraW5nU3Rh
dGVDaGFuZ2VkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5n
ZWQoYm9vbCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBnZXRGb3JtVmFsdWUoU3RyaW5nJikgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBzY3JvbGwoV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpT
Y3JvbGxHcmFudWxhcml0eSkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6U2Nyb2xsYmFyKiBob3Jp
em9udGFsU2Nyb2xsYmFyKCkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6U2Nyb2xsYmFyKiB2ZXJ0
aWNhbFNjcm9sbGJhcigpIG92ZXJyaWRlOwogICAgIGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIG92
ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uRnJvbURyYWdzKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGROb3RBZGRMYXllcigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgd2lsbERldGFjaFJlbmRlcmVyKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3Jl
OjpXaWRnZXQKQEAgLTE4OCw5ICsxODQsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gUGx1Z2luQ29u
dHJvbGxlcgogICAgIHZvaWQgbG9hZFVSTCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiB0YXJnZXQs
IGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIGhlYWRlckZpZWxkcywgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBodHRwQm9keSwgYm9vbCBhbGxvd1BvcHVwcykgb3ZlcnJpZGU7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJv
b2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgb3ZlcnJpZGU7Ci0jZW5kaWYKICAg
ICBmbG9hdCBjb250ZW50c1NjYWxlRmFjdG9yKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZElu
aXRpYWxpemVQbHVnaW4oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBiNDU3YzYzOThjODZjNmRiMTk1ODUyNzQxZGJiN2MyOTFlZDAx
ZWU5Li5hOTRiNWI5ZDdmZTMyZjI0YTg2ZGFhYWQ0NDg0MmIwY2RkMGFlYjJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05MzQsOCArOTM0LDYgQEAg
cHVibGljOgogICAgIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QqIGFjY2Vzc2liaWxpdHlS
ZW1vdGVPYmplY3QoKTsKICAgICBOU09iamVjdCAqYWNjZXNzaWJpbGl0eU9iamVjdEZvck1haW5G
cmFtZVBsdWdpbigpOwogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxp
dHlQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOyB9Ci0g
ICAgCi0gICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAK
ICAgICB2b2lkIHNldFRleHRBc3luYyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGluc2VydFRl
eHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1l
bnRSYW5nZSwgSW5zZXJ0VGV4dE9wdGlvbnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA2OGY5MWNkMDQyNmVi
NGMwMjU5ZmI3Y2Q3NWYzZjViOGZlOTcxNTkzLi5iMjcyMjk0NzFlYWU4NmVlNTk4MTk4M2RkNTdi
NWU3YTgyOTFjZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ0Myw5ICs0NDMsNiBAQCBHZW5lcmF0ZVN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAjIENvbXBsZXgg
dGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KLSAgICBTZW5kQ29tcGxleFRleHRJbnB1
dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJp
bmcgdGV4dElucHV0KQotCiAgICAgV2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoV2ViQ29yZTo6
RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6RmxvYXRS
ZWN0IHdpbmRvd0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6Rmxv
YXRSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkZsb2F0UG9pbnQg
YWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcykKICAgICBTZXRNYWluRnJhbWVJc1Njcm9sbGFi
bGUoYm9vbCBpc1Njcm9sbGFibGUpCiAgICAgUmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5
VG9rZW5zKElQQzo6RGF0YVJlZmVyZW5jZSBlbGVtZW5Ub2tlbiwgSVBDOjpEYXRhUmVmZXJlbmNl
IHdpbmRvd1Rva2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbQppbmRleCAzOWFiNzQ4ZTEyNjZkNTliN2M2MjBhNzdjMzM5ODM5ZWQx
MjE4MTg4Li5iMWVlMDEzZThiMGY1M2IwZDdjNWQ4ZTExNzA5M2NiZDAxYWRiNWE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpA
QCAtMzIxLDE0ICszMjEsNiBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2
ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBldmVudFdhc0hhbmRsZWQ7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQp
Ci17Ci0gICAgZm9yIChhdXRvKiBwbHVnaW5WaWV3IDogbV9wbHVnaW5WaWV3cykgewotICAgICAg
ICBpZiAocGx1Z2luVmlldy0+c2VuZENvbXBsZXhUZXh0SW5wdXQocGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXIsIHRleHRJbnB1dCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci19
Ci0KIHZvaWQgV2ViUGFnZTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNoYXJhY3RlclJhbmdlQXN5
bmMoY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFuZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZyYsIGNvbnN0IEVkaXRpbmdSYW5nZSYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEZyYW1lJiBmcmFtZSA9IG1fcGFnZS0+Zm9j
dXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447360</attachid>
            <date>2021-12-16 09:01:05 -0800</date>
            <delta_ts>2021-12-16 16:17:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234379-20211216090104.patch</filename>
            <type>text/plain</type>
            <size>34665</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJjZTIwOTRlMTBjYmYz
NzE5MGQ1ZTYzOTI0NDU0OTc0ZmIxNDhjNy4uMjUxYThlZWM3M2Q0ZTgzZTc0MzY4Yzk5N2QwODAw
MjhmNTAzYjE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEyLTE1ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IG1vcmUgTlBBUEkgcGx1Z2luIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNDM3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEpOiBEZWxldGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKiBwbHVn
aW5zL1BsdWdpblZpZXdCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3QmFzZTo6
c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXdCYXNlOjpwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlld0Jhc2U6OmdldEZvcm1WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3QmFzZTo6c2hvdWxkTm90QWRkTGF5ZXIgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKwog
MjAyMS0xMi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlIGluIFBsdWdpbiBhbmQgUGx1Z2luQ29u
dHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiOTQ0MjIyMDFhZmI0MDljNzY0ZGE2NWIyZjlhZTIxMzg5NzZk
OTJiLi5iNjBlMWY4MzYwMmYyODI3MDM1ZDQzZmMxY2U3ZDhlZjE0NjJhZWIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG1vcmUgTlBBUEkgcGx1Z2luIGNvZGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDM3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjppbnRlcnByZXRLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnB1
dENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2
YWxlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5RG93bik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZVBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRLZXlEb3duKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnRyeUhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0No
YW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dHJ5UG9zdFBy
b2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bik6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1
c0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW46OmNhbkNyZWF0ZVRyYW5zaWVudFBhaW50aW5nU25hcHNob3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9s
bGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpkZXN0cm95UGx1Z2luQW5kUmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzaG91bGRDcmVhdGVUcmFuc2llbnRQYWludGluZ1NuYXBz
aG90IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6c2VuZENvbXBsZXhUZXh0
SW5wdXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpwcml2YXRlQnJv
d3NpbmdTdGF0ZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3
OjpnZXRGb3JtVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpz
aG91bGROb3RBZGRMYXllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBsdWdp
blZpZXc6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWNjZXNzaWJp
bGl0eVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRDb21wbGV4VGV4dElucHV0VG9Q
bHVnaW4pOiBEZWxldGVkLgorCiAyMDIxLTEyLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUgaW4g
UGx1Z2luIGFuZCBQbHVnaW5Db250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuY3BwCmluZGV4IGVjNmFmNjZkYTQzM2ZhMWVjMDM0ODEwZmQyOTUzMDhjMDRmZDkw
ZDEuLmU5M2Q3NTVmMzBhNGRkODFiOGY5MTUzODU4YjVjMzdkY2M3ZDBjMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC00NjIsMjMgKzQ2Miw2IEBAIHZv
aWQgSFRNTE9iamVjdEVsZW1lbnQ6OmRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGRE
b2N1bWVudCwgRG9jdW1lbnQmIG5lCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGlkTW92
ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKIH0KIAotYm9vbCBIVE1M
T2JqZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEmIGZvcm1EYXRhKQotewot
ICAgIGlmIChuYW1lKCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAv
LyBVc2UgUGx1Z2luTG9hZGluZ1BvbGljeTo6RG9Ob3RMb2FkIGhlcmUgb3IgaXQgd291bGQgZmly
ZSBKUyBldmVudHMgc3luY2hyb25vdXNseQotICAgIC8vIHdoaWNoIHdvdWxkIG5vdCBiZSBzYWZl
IGhlcmUuCi0gICAgUmVmUHRyIHdpZGdldCA9IHBsdWdpbldpZGdldChQbHVnaW5Mb2FkaW5nUG9s
aWN5OjpEb05vdExvYWQpOwotICAgIGlmICghaXM8UGx1Z2luVmlld0Jhc2U+KHdpZGdldCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTdHJpbmcgdmFsdWU7Ci0gICAgaWYgKCFkb3duY2Fz
dDxQbHVnaW5WaWV3QmFzZT4oKndpZGdldCkuZ2V0Rm9ybVZhbHVlKHZhbHVlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGZvcm1EYXRhLmFwcGVuZChuYW1lKCksIHZhbHVlKTsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6Y2FuQ29udGFpblJhbmdl
RW5kUG9pbnQoKSBjb25zdAogewogICAgIC8vIENhbGwgdGhyb3VnaCB0byBIVE1MRWxlbWVudCBi
ZWNhdXNlIEhUTUxQbHVnSW5FbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IGQ4MzMxNjk4ZDM1ZGI5OTYxODEx
NzkzOTBlZWZjMzk0OWY1Njg2YTAuLmJlYTU2MGI2NTJkZGFhM2JmMzIyZDBhNjhmNTMyMmE1OGE3
Yzg0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTk5LDcg
Kzk5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBhcHBlbmRGb3JtRGF0YShET01Gb3Jt
RGF0YSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA0ZjJmMGQ3NjlhZWQwOWFjYmYzMmIwYTYz
NzJjMTNmMDMzZjEyMDEwLi4zOWZiMDI3ZTQ2NmZhNzJmYjBjZGM5ZTQzNTA2MTBmZjZiYTZlNWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMwNDcsMTIgKzMwNDcsNiBAQCB2b2lkIFBhZ2U6OnNl
dFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgZm9yRWFjaERvY3VtZW50
KFsmXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAgICAgIGRvY3VtZW50LnByaXZhdGVCcm93
c2luZ1N0YXRlRGlkQ2hhbmdlKG1fc2Vzc2lvbklEKTsKICAgICB9KTsKLQotICAgIC8vIENvbGxl
Y3QgdGhlIFBsdWdpblZpZXdzIGluIHRvIGEgdmVjdG9yIHRvIGVuc3VyZSB0aGF0IGFjdGlvbiB0
aGUgcGx1Zy1pbiB0YWtlcwotICAgIC8vIGZyb20gYmVsb3cgcHJpdmF0ZUJyb3dzaW5nU3RhdGVD
aGFuZ2VkIGRvZXMgbm90IGFmZmVjdCB0aGVpciBsaWZldGltZS4KLQotICAgIGZvciAoYXV0byYg
dmlldyA6IHBsdWdpblZpZXdzKCkpCi0gICAgICAgIHZpZXctPnByaXZhdGVCcm93c2luZ1N0YXRl
Q2hhbmdlZChzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSk7CiB9CiAKICNpZiBFTkFCTEUoV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5WaWV3QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5o
CmluZGV4IGU2NDgzYjA4Mzk2YTE1Njc1ZWMzY2ZlYjIwYjFiZjI0NjE5NDM5NTguLmNjMzBmOWVk
NzAwYWE3Yzc5YmZkMjMwZTYzNTQyNWZlN2Q0ZjJlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXdCYXNlLmgKQEAgLTU4LDggKzU4LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCopIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gQSBwbHVnLWluIGNhbiBhc2sgV2Vi
S2l0IHRvIGhhbmRsZSBzY3JvbGxiYXJzIGZvciBpdC4KQEAgLTczLDcgKzcxLDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb25Gcm9tRHJhZ3MoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBpc1BsdWdpblZpZXdCYXNlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RBZGRM
YXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIEF1ZGlvSGFyZHdh
cmVBY3Rpdml0eVR5cGUgYXVkaW9IYXJkd2FyZUFjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gQXVk
aW9IYXJkd2FyZUFjdGl2aXR5VHlwZTo6VW5rbm93bjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDY5NTBhMWUwZTUzMjAxODEw
N2Q1ZmRmOGE1YTdiYmM1MTcwNTQwMzIuLmNmMTBhNDRjYmVhMDdhOGIzZGUzMzcyMWVjZjdkODFk
NjU0MjUzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCkBAIC0xMDc0LDggKzEwNzQsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlQ29uZmlndXJhdGlvbihjb25zdCBSZW5kZXJMYXllciogY29tcG9zaXRpbmdBbmNlcwog
ICAgICAgICAgICAgcGx1Z2luVmlld0Jhc2UtPmF0dGFjaFBsdWdpbkxheWVyKCk7CiAgICAgICAg
IH0KICNlbHNlCi0gICAgICAgIGlmICghcGx1Z2luVmlld0Jhc2UtPnNob3VsZE5vdEFkZExheWVy
KCkpCi0gICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxh
eWVyKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRl
bnRzTGF5ZXJQdXJwb3NlOjpQbHVnaW4pOworICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENv
bnRlbnRzVG9QbGF0Zm9ybUxheWVyKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCksIEdy
YXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJQdXJwb3NlOjpQbHVnaW4pOwogI2VuZGlmCiAgICAg
fQogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oCmluZGV4IDEyNDE3ODNiY2NjZWEwMDk1YTZlZGJiZDJkNjk2YTZiZTFmNGQ1MzIu
LmU4NTFjYWI4MmM3NDI5ZjViOTQ2ZTlhYmE3ZDJkODgwMDU5NjU2MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMzM4LDEyICszMzgsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXNldFNlY3VyZUlucHV0U3RhdGUoKTsKICAgICBib29sIGluU2Vj
dXJlSW5wdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5TZWN1cmVJbnB1dFN0YXRlOyB9CiAg
ICAgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7Ci0g
ICAgdm9pZCBkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7Ci0gICAgYm9vbCBo
YW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICopOwotICAgIGJvb2wg
dHJ5SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oTlNFdmVudCAqKTsKLSAgICB2
b2lkIHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0Fu
ZFdpbmRvd0hhc0ZvY3VzLCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
cik7Ci0gICAgYm9vbCB0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3du
KE5TRXZlbnQgKik7Ci0gICAgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOyB9
CiAgICAgCiAgICAgdm9pZCBoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dChjb25zdCBTdHJp
bmcmKTsKICAgICBOU0ludGVnZXIgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKTsKQEAgLTc4NCw5
ICs3NzgsNiBAQCBwcml2YXRlOgogCiAgICAgVmFsaWRhdGlvbk1hcCBtX3ZhbGlkYXRpb25NYXA7
CiAKLSAgICAvLyBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGx1Zy1pbiB3ZSB3YW50IHRvIHNlbmQg
Y29tcGxleCB0ZXh0IGlucHV0IHRvLCBvciAwIGlmIHRoZXJlIGlzIG5vbmUuCi0gICAgdWludDY0
X3QgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciB7IDAgfTsKLQogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBSZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcj4gbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3Mzc0OGNhZjE0ZWIxMzBl
MDc0NTM3MTJhNGUwMzdkZmY0NTViYTdjLi4yY2VhOTcwZGE3ODI5ZmI3MGU1NTNiN2Y1MTBiYzUz
OTk4MmMxYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtMjc2OCw1NCArMjc2OCw2IEBAIHZvaWQgV2ViVmlld0ltcGw6Om5vdGlmeUlucHV0
Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKQogICAgIFtbbV92aWV3IF93ZWJfc3Vw
ZXJJbnB1dENvbnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsgLy8gSW5mb3JtIHRoZSBpbnB1dCBt
ZXRob2QgdGhhdCB3ZSB3b24ndCBoYXZlIGFuIGlubGluZSBpbnB1dCBhcmVhIGRlc3BpdGUgaGF2
aW5nIGJlZW4gYXNrZWQgdG8uCiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmRpc2FibGVDb21wbGV4
VGV4dElucHV0SWZOZWNlc3NhcnkoKQotewotfQotCi1ib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVQ
bHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICopCi17Ci0gICAgcmV0dXJuIE5P
OwotfQotCi1ib29sIFdlYlZpZXdJbXBsOjp0cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0
S2V5RG93bihOU0V2ZW50ICopCi17Ci0gICAgcmV0dXJuIE5POwotfQotCi12b2lkIFdlYlZpZXdJ
bXBsOjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNB
bmRXaW5kb3dIYXNGb2N1cywgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIpCi17Ci0gICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6
Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93U2VydmVyKSk7Ci0gICAgYm9vbCBpbnB1dFNvdXJjZUNo
YW5nZWQgPSAhIW1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI7Ci0KLSAgICBpZiAo
cGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgewotICAgICAgICAvLyBDaGVjayBpZiB3
ZSdyZSBhbHJlYWR5IGFsbG93aW5nIHRleHQgaW5wdXQgZm9yIHRoaXMgcGx1Zy1pbi4KLSAgICAg
ICAgaWYgKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyID09IG1fcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbV9w
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciA9IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyOwotCi0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQ2hlY2sgaWYgd2UgZ290IGEg
cmVxdWVzdCB0byB1bmZvY3VzIGEgcGx1Zy1pbiB0aGF0IGlzbid0IGZvY3VzZWQuCi0gICAgICAg
IGlmIChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciAhPSBtX3BsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgPSAwOwotICAgIH0KLQotICAgIGlmIChpbnB1
dFNvdXJjZUNoYW5nZWQpIHsKLSAgICAgICAgLy8gVGhlIGlucHV0IHNvdXJjZSBjaGFuZ2VkOyBk
aXNjYXJkIGFueSBlbnRlcmVkIHRleHQuCi0gICAgICAgIFtbV0tUZXh0SW5wdXRXaW5kb3dDb250
cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXJdIHVubWFya1RleHRdOwotICAg
IH0KLQotICAgIC8vIFRoaXMgd2lsbCBmb3JjZSB0aGUgY3VycmVudCBpbnB1dCBjb250ZXh0IHRv
IGJlIHVwZGF0ZWQgdG8gaXRzIGNvcnJlY3QgdmFsdWUuCi0gICAgW05TQXBwIHVwZGF0ZVdpbmRv
d3NdOwotfQotCi1ib29sIFdlYlZpZXdJbXBsOjp0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQgKikKLXsKLSAgICByZXR1cm4gTk87Ci19Ci0KIHZvaWQg
V2ViVmlld0ltcGw6OmhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRpdmVUZXh0KGNvbnN0IFN0cmluZyYg
YWNjZXB0ZWRBbHRlcm5hdGl2ZSkKIHsKICAgICBtX3BhZ2UtPmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOwpAQCAtNDk0MCw5ICs0ODkyLDYgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBldmVu
dFdhc0hhbmRsZWQpCiAgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0V2ZW50VHlwZUtleURvd24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICh0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKGV2ZW50KSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGV2ZW50
V2FzSGFuZGxlZCkgewogICAgICAgICBbTlNDdXJzb3Igc2V0SGlkZGVuVW50aWxNb3VzZU1vdmVz
OllFU107CiAgICAgICAgIHJldHVybjsKQEAgLTUwMzcsMTMgKzQ5ODYsNiBAQCBWZWN0b3I8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiBXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJkTGF5b3V0
Q29tbWFuZHNGb3JFdgogCiB2b2lkIFdlYlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVudChOU0V2
ZW50ICpldmVudCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXIpKEJPT0wgaGFuZGxlZCwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSkKIHsKLSAgICAvLyBG
b3IgcmVndWxhciBXZWIgY29udGVudCwgaW5wdXQgbWV0aG9kcyBydW4gYmVmb3JlIHBhc3Npbmcg
YSBrZXlkb3duIHRvIERPTSwgYnV0IHBsdWctaW5zIGdldCBhbiBvcHBvcnR1bml0eSB0byBoYW5k
bGUgdGhlIGV2ZW50IGZpcnN0LgotICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8gY29sbGVjdCBj
b21tYW5kcywgYXMgdGhlIHBsdWctaW4gY2Fubm90IGV4ZWN1dGUgdGhlbS4KLSAgICBpZiAocGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihOTywgeyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmICghaW5wdXRD
b250ZXh0KCkpIHsKICAgICAgICAgYXV0byBjb21tYW5kcyA9IGNvbGxlY3RLZXlib2FyZExheW91
dENvbW1hbmRzRm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOTywg
Y29tbWFuZHMpOwpAQCAtNTI1NSwxMSArNTE5Nyw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYXJh
Y3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCBwb2ludCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXIp
CiAKIE5TVGV4dElucHV0Q29udGV4dCAqV2ViVmlld0ltcGw6OmlucHV0Q29udGV4dCgpCiB7Ci0g
ICAgaWYgKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgQVNT
RVJUKCFtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOyAvLyBTaG91bGQgbm90IGdldCBoZXJl
IGZyb20gLV9pbnRlcnByZXRLZXlFdmVudDpjb21wbGV0aW9uSGFuZGxlcjosIHdlIG9ubHkgdXNl
IFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBhZnRlciBnaXZpbmcgdGhlIHBsdWctaW4gYSBj
aGFuY2UgdG8gaGFuZGxlIGtleWRvd24gbmF0aXZlbHkuCi0gICAgICAgIHJldHVybiBbW1dLVGV4
dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSBp
bnB1dENvbnRleHRdOwotICAgIH0KLQogICAgIC8vIERpc2FibGUgdGV4dCBpbnB1dCBtYWNoaW5l
cnkgd2hlbiBpbiBub24tZWRpdGFibGUgY29udGVudC4gQW4gaW52aXNpYmxlIGlubGluZSBpbnB1
dCBhcmVhIGFmZmVjdHMgcGVyZm9ybWFuY2UsIGFuZCBjYW4gcHJldmVudCBFeHBvc2UgZnJvbSB3
b3JraW5nLgogICAgIGlmICghbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxl
KQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtNTM3MCw4ICs1MzA3LDYgQEAgYm9vbCBXZWJWaWV3
SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIHJldHVy
biBbbV92aWV3IF93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CiAgICAgfQog
Ci0gICAgZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeSgpOwotCiAgICAgLy8gUGFz
cyBrZXkgY29tYm9zIHRocm91Z2ggV2ViQ29yZSBpZiB0aGVyZSBpcyBhIGtleSBiaW5kaW5nIGF2
YWlsYWJsZSBmb3IKICAgICAvLyB0aGlzIGV2ZW50LiBUaGlzIGxldHMgd2VicGFnZXMgaGF2ZSBh
IGNyYWNrIGF0IGludGVyY2VwdGluZyBrZXktbW9kaWZpZWQga2V5cHJlc3Nlcy4KICAgICAvLyBG
SVhNRTogV2h5IGlzIHRoZSBmaXJzdFJlc3BvbmRlciBjaGVjayBuZWVkZWQ/CkBAIC01NDA4LDEx
ICs1MzQzLDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihOU0V2ZW50ICpldmVudCkKIAog
ICAgIExPRyhUZXh0SW5wdXQsICJrZXlEb3duOiVwICVAJXMiLCBldmVudCwgZXZlbnQsIChldmVu
dCA9PSBtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSA/ICIgKHJlLXNlbnQpIiA6ICIiKTsKIAot
ICAgIGlmICh0cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihldmVudCkpIHsK
LSAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLmhhbmRsZWQgYnkgcGx1Zy1pbiIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gV2UgY291bGQgYmUgcmVjZWl2aW5nIGEga2V5IGRv
d24gZnJvbSBBcHBLaXQgaWYgd2UgaGF2ZSByZS1zZW50IGFuIGV2ZW50CiAgICAgLy8gdGhhdCBt
YXBzIHRvIGFuIGFjdGlvbiB0aGF0IGlzIGN1cnJlbnRseSB1bmF2YWlsYWJsZSAoZm9yIGV4YW1w
bGUgYSBjb3B5IHdoZW4KICAgICAvLyB0aGVyZSBpcyBubyByYW5nZSBzZWxlY3Rpb24pLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDljNjU2MTdiODk2YjE1ZjlmNDdhMWQx
NDQ4MGY2ZTM1Y2I2ZWZmZDEuLjViNTI5ZmZkOGMyMmQ2ZGUwMzJjYzg5ZWE3MDliMTJjMzc4YjEz
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTQyMiw3ICs0MjIsNiBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQg
cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0VHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVw
bGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxh
Y2VtZW50U3RyaW5ncykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBh
bmVsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpID0gMDsKICAg
ICB2aXJ0dWFsIFN0cmluZyBkaXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihXZWJDb3JlOjpSZWFz
b25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDNiMzc2MWE3ZTc3MWEwY2JmYTE2NTMzMGJiNzM3OWZhOWM3
ZmU5NGMuLjc3ZmQ0Yjc5NDA2Y2VhMzQwMDdhZDhjNGRmMzYxZTk4NmZkMjMzY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05NTYsOCArOTU2LDYgQEAgcHVibGlj
OgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVz
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVz
KTsKICAgICB2b2lkIHNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShib29sKTsKLSAgICAgICAgCi0g
ICAgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgYm9v
bCBzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYp
OwogCiAgICAgdm9pZCBzZXRSZW1vdGVMYXllclRyZWVSb290Tm9kZShSZW1vdGVMYXllclRyZWVO
b2RlKik7CkBAIC0yMzY1LDEwICsyMzYzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRmlu
aXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKLSNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICB2b2lkIHBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNB
bmRXaW5kb3dIYXNGb2N1cyk7Ci0jZW5kaWYKLQogI2lmIFVTRShBVVRPTUFUSUNfVEVYVF9SRVBM
QUNFTUVOVCkKICAgICB2b2lkIHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCk7CiAgICAgdm9pZCB0
b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGU1ZjhmNWY1MGE0YmZiMzU1
Y2Q3NTgyNDBhZDFhN2ExM2NiZTdhOTEuLjU3NGFlMDcxZGI0ZDIxYWJiNGY1OWM5NTkzMTVmMDE1
ODUwNjBjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KQEAgLTMyNyw5ICszMjcsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgICMgUmVtb3RlIGFjY2Vzc2liaWxpdHkgbWVzc2FnZXMKICAgICBSZWdpc3RlcldlYlBy
b2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW4oSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAKLSAgICAj
IFBsdWctaW4gY29tcGxleCB0ZXh0IGlucHV0IHN1cHBvcnQgbWVzc2FnZXMKLSAgICBQbHVnaW5G
b2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpCi0KICAgICAj
IFNwZWVjaCBtZXNzYWdlcwogICAgIEdldElzU3BlYWtpbmcoKSAtPiAoYm9vbCBpc1NwZWFraW5n
KSBTeW5jaHJvbm91cwogICAgIFNwZWFrKFN0cmluZyBzdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAxMjhhYTM5NDM3NDQ5MDI4
MzAwYjg5ZjYwMWE5OGE4MTM3Y2RkNjBiLi44Mjk4YmViODU3YzJjNWE3YmY2NGMxODRmYWQ4YTBl
ZWNlMzIwYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KQEAgLTcyOSwxMiArNzI5LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmludGVycHJl
dEtleUV2ZW50KGNvbnN0IEVkaXRvclN0YXRlJiBzdGF0ZSwgYm9vbCBpc0NoYXJFdmVudCwKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIocGFnZUNsaWVudCgpLmludGVycHJldEtleUV2ZW50KG1f
a2V5RXZlbnRRdWV1ZS5maXJzdCgpLCBpc0NoYXJFdmVudCkpOwogfQogCi0vLyBDb21wbGV4IHRl
eHQgaW5wdXQgc3VwcG9ydCBmb3IgcGx1Zy1pbnMuCi12b2lkIFdlYlBhZ2VQcm94eTo6c2VuZENv
bXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCwgY29uc3QgU3RyaW5nJikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTc2MywxMSAr
NzU3LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2Vucyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpSZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoZWxlbWVudFRva2VuLCB3
aW5kb3dUb2tlbikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cGx1Z2luRm9jdXNPcldpbmRv
d0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCwgYm9vbCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29u
c3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA4M2RiNzZlMGQwMWZlMjZmNmFhYzJm
OWJkZDdiY2QwNmYwMGU4NTEyLi5hYTU3ZWEwZjZjZjViZTY3MWVjZTQ5Mzg5ODYyMWIyYTRjZWY1
M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMuaApAQCAtMTczLDggKzE3Myw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFjY2Vzc2liaWxp
dHlXZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRf
dCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0Fu
ZFdpbmRvd0hhc0ZvY3VzKSBvdmVycmlkZTsKLQogICAgIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVy
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhc3Npc3RpdmVUZWNobm9sb2d5TWFrZUZpcnN0UmVzcG9u
ZGVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTaG91bGRTdXBwcmVzc0ZpcnN0UmVzcG9uZGVy
Q2hhbmdlcyhib29sIHNob3VsZFN1cHByZXNzKSBvdmVycmlkZSB7IG1fc2hvdWxkU3VwcHJlc3NG
aXJzdFJlc3BvbmRlckNoYW5nZXMgPSBzaG91bGRTdXBwcmVzczsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDRhMDgwYjJjMTcx
NTE0NWM0MTcyZjg3OTA4YWI0ZTFiOTc5MjhjZTkuLjc1NjE4NGFmNmNkOTk0NmE1Zjk0N2RmOTBk
ZDllNmJmYjQ0ZTBlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMubW0KQEAgLTY1NCwxMSArNjU0LDYgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJHZXN0
dXJlRXYKIH0KICNlbmRpZgogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpwbHVnaW5Gb2N1c09yV2lu
ZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
LCBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpCi17Ci0gICAgbV9pbXBsLT5w
bHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFz
Rm9jdXMsIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKTsKLX0KLQogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBv
cHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKIHsKICAgICBtX2ltcGwtPnByZXBhcmVGb3JE
aWN0aW9uYXJ5TG9va3VwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBh
Z2VQcm94eU1hYy5tbQppbmRleCBiNGNlYWVlNjczOWMwMzU0MTViZTI4MmRjNGI5Njg0NWNmMWVh
NzkwLi4xZTVlMzA0Mzg0NDMyMmVhNWY1MTI0NmFhYTk1MmMzY2QxODlkMDc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTI4OSwxNSAr
Mjg5LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFByb21pc2VkRGF0YUZvckltYWdlKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFMKIAogI2VuZGlmCiAKLS8vIENvbXBsZXgg
dGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KLXZvaWQgV2ViUGFnZVByb3h5OjpzZW5k
Q29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKLXsKLSAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyLCB0ZXh0SW5wdXQpKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OnVwcGVy
Y2FzZVdvcmQoKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVwcGVyY2FzZVdvcmQo
KSk7CkBAIC0zNTksMTEgKzM1MCw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlclVJUHJv
Y2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6UmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5z
KGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnBs
dWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKLXsK
LSAgICBwYWdlQ2xpZW50KCkucGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZChwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1
cyk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rv
cihjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soaXNWYWxpZEtleXByZXNz
Q29tbWFuZE5hbWUoc2VsZWN0b3IpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCBmOTJlNjE3NmNiMGM2NGMzZDY2MTk1YzJhNzNj
NWFkNDMzYTU2YTUwLi44ZDJjNWYzZTI1Y2ExYTIzNzhlNWUzMDA1ZDc1NDkyYmVhZjBiMWVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5o
CkBAIC0xOTcsMTQgKzE5NywxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93Rm9jdXNDaGFu
Z2VkKGJvb2wpIGZpbmFsIHsgfQogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKSBmaW5h
bCB7IH0KICAgICB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQot
ICAgIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gMDsgfQogICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3Ry
aW5nJiB0ZXh0SW5wdXQpIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShM
YXllckhvc3RpbmdNb2RlKSBmaW5hbCB7IH0KICAgICBXZWJDb3JlOjpTY3JvbGxiYXIqIGhvcml6
b250YWxTY3JvbGxiYXIoKSBmaW5hbCB7IHJldHVybiBtX2hvcml6b250YWxTY3JvbGxiYXIuZ2V0
KCk7IH0KICAgICBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgZmluYWwg
eyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQoKTsgfQogICAgIHZvaWQgc3RvcmFnZUJs
b2NraW5nU3RhdGVDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQotICAgIHZvaWQgcHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQotICAgIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0
cmluZyYgZm9ybVZhbHVlKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaGFuZGxl
U2Nyb2xsKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJp
dHkpIGZpbmFsOwogICAgIFJlZlB0cjxXZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBs
aXZlUmVzb3VyY2VEYXRhKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCB3aWxsRGV0YWNoUmVuZGVy
ZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKaW5k
ZXggZmIyZDE0ZDQxOWJlNmYzNTI1YjdiZDZhZDA3MTBiYjVmZjkyNmRjOC4uMWQ4NDQ4MDVmNGMx
MGU5M2ZlZGNhYmRlZWMyMWRkMzVkZGY4ODIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmgKQEAgLTIyNyw5ICsyMjcsNiBAQCBwdWJsaWM6CiAgICAgLy8gVGVs
bHMgdGhlIHBsdWctaW4gYWJvdXQgd2luZG93IGFuZCBwbHVnLWluIGZyYW1lIGNoYW5nZXMuCiAg
ICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykgPSAwOwogCi0gICAgLy8gR2V0
IHRoZSBwZXIgY29tcGxleCB0ZXh0IGlucHV0IGlkZW50aWZpZXIuCi0gICAgdmlydHVhbCB1aW50
NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0ID0gMDsKLQogICAg
IC8vIFNlbmQgdGhlIGNvbXBsZXggdGV4dCBpbnB1dCB0byB0aGUgcGx1Zy1pbi4KICAgICB2aXJ0
dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpID0g
MDsKIApAQCAtMjQzLDEyICsyNDAsNiBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhl
IHN0b3JhZ2UgYmxvY2tpbmcgcG9saWN5IGZvciB0aGlzIHBsdWctaW4gY2hhbmdlcy4KICAgICB2
aXJ0dWFsIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKGJvb2wpID0gMDsKIAotICAg
IC8vIENhbGxlZCB3aGVuIHRoZSBwcml2YXRlIGJyb3dzaW5nIHN0YXRlIGZvciB0aGlzIHBsdWct
aW4gY2hhbmdlcy4KLSAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2Vk
KGJvb2wpID0gMDsKLQotICAgIC8vIEdldHMgdGhlIGZvcm0gdmFsdWUgcmVwcmVzZW50YXRpb24g
Zm9yIHRoZSBwbHVnLWluLCBsZXR0aW5nIHBsdWctaW5zIHBhcnRpY2lwYXRlIGluIGZvcm0gc3Vi
bWlzc2lvbi4KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYgZm9ybVZhbHVl
KSA9IDA7Ci0KICAgICAvLyBUZWxscyB0aGUgcGx1Zy1pbiB0aGF0IGl0IHNob3VsZCBzY3JvbGwu
IFRoZSBwbHVnLWluIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiBpdCBkaWQgc2Nyb2xsLgogICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3Jl
OjpTY3JvbGxHcmFudWxhcml0eSkgPSAwOwogCkBAIC0yODAsOCArMjcxLDYgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIG11dGVkU3RhdGVDaGFuZ2VkKGJvb2wpIHsgfQogCi0gICAgdmly
dHVhbCBib29sIGNhbkNyZWF0ZVRyYW5zaWVudFBhaW50aW5nU25hcHNob3QoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNVbmlmaWVkU2NhbGVGYWN0
b3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRh
Y2hSZW5kZXJlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luQ29udHJvbGxlci5oCmluZGV4IDk5ZTQ1ZmViMjJjNGIxNTU1MjY2MjYzODk2NjU0
YzM1NDdhY2JlNzkuLmNkMzZmOGIyYjVjNWUzMjIyMmQ3ZTIzNDQ2MmNlMzIzZGU4Zjg5YzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9s
bGVyLmgKQEAgLTQ4LDExICs0OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFVS
TCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcm
IHVybFN0cmluZywgY29uc3QgU3RyaW5nJiB0YXJnZXQsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIGhlYWRlckZpZWxkcywgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBodHRwQm9keSwgYm9vbCBhbGxvd1BvcHVwcykgPSAwOwogCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCB0aGUgcGx1Zy1p
biBmb2N1cyBvciB3aW5kb3cgZm9jdXMgZGlkIGNoYW5nZS4KLSAgICB2aXJ0dWFsIHZvaWQgcGx1
Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZChib29sKSA9IDA7Ci0jZW5kaWYKLQogICAgIC8v
IFJldHVybnMgdGhlIGNvbnRlbnRzIHNjYWxlIGZhY3Rvci4KICAgICB2aXJ0dWFsIGZsb2F0IGNv
bnRlbnRzU2NhbGVGYWN0b3IoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYWY2MDM4YjUzN2Y4MDYzYzRkZWQ0MGVhZGNm
NTYyMmEyMTIzNDY1Mi4uNTM0ZGE1MmQ0N2Q2Mjg1MGUyMDVmZjllOTljMzBiMzdkM2JjYmExMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
QEAgLTMyMiwxMSArMzIyLDYgQEAgdm9pZCBQbHVnaW5WaWV3OjpkZXN0cm95UGx1Z2luQW5kUmVz
ZXQoKQogCiAgICAgICAgIG1fcGVuZGluZ1VSTFJlcXVlc3RzLmNsZWFyKCk7CiAgICAgICAgIG1f
cGVuZGluZ1VSTFJlcXVlc3RzVGltZXIuc3RvcCgpOwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgICAgIGlmIChtX3dlYlBhZ2UpCi0gICAgICAgICAgICBwbHVnaW5Gb2N1c09yV2luZG93Rm9j
dXNDaGFuZ2VkKGZhbHNlKTsKLSNlbmRpZgogICAgIH0KIAogICAgIGNhbmNlbEFsbFN0cmVhbXMo
KTsKQEAgLTQ5NywxOCArNDkyLDYgQEAgdm9pZCBQbHVnaW5WaWV3Ojp3aW5kb3dBbmRWaWV3RnJh
bWVzQ2hhbmdlZChjb25zdCBGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW4KICAgICBtX3Bs
dWdpbi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoZW5jbG9zaW5nSW50UmVjdCh3aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMpLCBlbmNsb3NpbmdJbnRSZWN0KHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMpKTsKIH0KIAotYm9vbCBQbHVnaW5WaWV3OjpzZW5kQ29tcGxleFRleHRJ
bnB1dCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiB0ZXh0SW5wdXQpCi17Ci0gICAgaWYgKCFtX3BsdWdpbikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKG1fcGx1Z2luLT5wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
cigpICE9IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBtX3BsdWdpbi0+c2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KTsK
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLSAgICAKIGlkIFBsdWdpblZpZXc6OmFjY2Vzc2liaWxpdHlB
c3NvY2lhdGVkUGx1Z2luUGFyZW50Rm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KSBjb25zdAog
ewogICAgIGlmICghbV9wbHVnaW4pCkBAIC02MzUsMjQgKzYxOCw2IEBAIHZvaWQgUGx1Z2luVmll
dzo6c3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkKICAgICBtX3BsdWdpbi0+c3RvcmFnZUJs
b2NraW5nU3RhdGVDaGFuZ2VkKHN0b3JhZ2VCbG9ja2luZ1BvbGljeSk7CiB9CiAKLXZvaWQgUGx1
Z2luVmlldzo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCkKLXsKLSAgICAvLyBUaGUgcGx1Zy1pbiBjYW4gYmUgbnVsbCBoZXJlIGlmIGl0IGZh
aWxlZCB0byBpbml0aWFsaXplLgotICAgIGlmICghbV9pc0luaXRpYWxpemVkIHx8ICFtX3BsdWdp
bikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wbHVnaW4tPnByaXZhdGVCcm93c2luZ1N0YXRl
Q2hhbmdlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKLX0KLQotYm9vbCBQbHVnaW5WaWV3Ojpn
ZXRGb3JtVmFsdWUoU3RyaW5nJiBmb3JtVmFsdWUpCi17Ci0gICAgLy8gVGhlIHBsdWctaW4gY2Fu
IGJlIG51bGwgaGVyZSBpZiBpdCBmYWlsZWQgdG8gaW5pdGlhbGl6ZS4KLSAgICBpZiAoIW1faXNJ
bml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBtX3BsdWdpbi0+Z2V0Rm9ybVZhbHVlKGZvcm1WYWx1ZSk7Ci19Ci0KIGJvb2wgUGx1Z2lu
Vmlldzo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQogewogICAgIC8vIFRoZSBwbHVnLWluIGNhbiBiZSBudWxsIGhlcmUgaWYg
aXQgZmFpbGVkIHRvIGluaXRpYWxpemUuCkBAIC04ODksMTEgKzg1NCw2IEBAIGJvb2wgUGx1Z2lu
Vmlldzo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uRnJvbURyYWdzKCkgY29uc3QKICAgICByZXR1cm4g
bV9wbHVnaW4tPnNob3VsZEFsbG93TmF2aWdhdGlvbkZyb21EcmFncygpOwogfQogCi1ib29sIFBs
dWdpblZpZXc6OnNob3VsZE5vdEFkZExheWVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIHZvaWQgUGx1Z2luVmlldzo6d2lsbERldGFjaFJlbmRlcmVyKCkKIHsKICAgICBpZiAo
IW1faXNJbml0aWFsaXplZCB8fCAhbV9wbHVnaW4pCkBAIC0xMjgyLDE0ICsxMjQyLDYgQEAgdm9p
ZCBQbHVnaW5WaWV3Ojpsb2FkVVJMKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBt
ZXRob2QsIGNvbnN0IFN0cmluZyYKICAgICBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyLnN0YXJ0
T25lU2hvdCgwX3MpOwogfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFBsdWdpblZpZXc6
OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdp
bmRvd0hhc0ZvY3VzKQotewotICAgIGlmIChtX3dlYlBhZ2UpCi0gICAgICAgIG1fd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFu
Z2VkKG1fcGx1Z2luLT5wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpLCBwbHVnaW5I
YXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKSk7Ci19Ci0jZW5kaWYKLQogZmxvYXQgUGx1Z2luVmll
dzo6Y29udGVudHNTY2FsZUZhY3RvcigpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgp
ID8gZnJhbWUoKS0+cGFnZSgpIDogMCkKQEAgLTEzMzIsOSArMTI4NCw2IEBAIGJvb2wgUGx1Z2lu
Vmlldzo6c2hvdWxkQ3JlYXRlVHJhbnNpZW50UGFpbnRpbmdTbmFwc2hvdCgpIGNvbnN0CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBpZiAoIW1fcGx1Z2luLT5jYW5DcmVhdGVUcmFuc2llbnRQYWlu
dGluZ1NuYXBzaG90KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
aW5kZXggYmZhZTFjYzg0ODhiNDUzYTkzNjFlYzI3ZWJhMTNjZWM3ZDZhZWI0OC4uZjY2MzEyYTgw
YWNkMWUwMzUzMTBkZmFhM2E1ZjNhMTdiNzJhYWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtODMsNyArODMsNiBAQCBwdWJsaWM6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7
CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKLSAgICBib29sIHNlbmRDb21w
bGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZE
b2N1bWVudEZvclByaW50aW5nKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW4tPnBkZkRvY3VtZW50
Rm9yUHJpbnRpbmcoKTsgfQogICAgIGlkIGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb2ludCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wbHVnaW4tPmFj
Y2Vzc2liaWxpdHlIaXRUZXN0KHBvaW50KTsgfQogICAgIGlkIGFjY2Vzc2liaWxpdHlPYmplY3Qo
KSBjb25zdCBvdmVycmlkZTsKQEAgLTE1NCwxNCArMTUzLDExIEBAIHByaXZhdGU6CiAjZW5kaWYK
ICAgICBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCopIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCkgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBnZXRGb3JtVmFsdWUoU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGwo
V2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSkgb3Zl
cnJpZGU7CiAgICAgV2ViQ29yZTo6U2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgb3Zl
cnJpZGU7CiAgICAgV2ViQ29yZTo6U2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhcigpIG92ZXJy
aWRlOwogICAgIGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hv
dWxkQWxsb3dOYXZpZ2F0aW9uRnJvbURyYWdzKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBz
aG91bGROb3RBZGRMYXllcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbERldGFjaFJl
bmRlcmVyKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpXaWRnZXQKQEAgLTE4OCw5ICsx
ODQsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gUGx1Z2luQ29udHJvbGxlcgogICAgIHZvaWQgbG9h
ZFVSTCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFdlYkNvcmU6OkhUVFBI
ZWFkZXJNYXAmIGhlYWRlckZpZWxkcywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBodHRwQm9keSwg
Ym9vbCBhbGxvd1BvcHVwcykgb3ZlcnJpZGU7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9p
ZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRX
aW5kb3dIYXNGb2N1cykgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICBmbG9hdCBjb250ZW50c1NjYWxl
RmFjdG9yKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZEluaXRpYWxpemVQbHVnaW4oKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBi
NDU3YzYzOThjODZjNmRiMTk1ODUyNzQxZGJiN2MyOTFlZDAxZWU5Li5hOTRiNWI5ZDdmZTMyZjI0
YTg2ZGFhYWQ0NDg0MmIwY2RkMGFlYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC05MzQsOCArOTM0LDYgQEAgcHVibGljOgogICAgIFdLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3QqIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKTsKICAgICBO
U09iamVjdCAqYWNjZXNzaWJpbGl0eU9iamVjdEZvck1haW5GcmFtZVBsdWdpbigpOwogICAgIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBvc2l0aW9uOyB9Ci0gICAgCi0gICAgdm9pZCBzZW5kQ29t
cGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CiAKICAgICB2b2lkIHNldFRleHRBc3lu
Yyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgSW5zZXJ0VGV4dE9w
dGlvbnMmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCA2OGY5MWNkMDQyNmViNGMwMjU5ZmI3Y2Q3NWYzZjViOGZl
OTcxNTkzLi5iMjcyMjk0NzFlYWU4NmVlNTk4MTk4M2RkNTdiNWU3YTgyOTFjZDRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KQEAgLTQ0Myw5ICs0NDMsNiBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAjIENvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZv
ciBwbHVnLWlucy4KLSAgICBTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcgdGV4dElucHV0KQotCiAgICAg
V2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1l
SW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5VbmZs
aXBwZWRTY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6RmxvYXRSZWN0IHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkZsb2F0UG9pbnQgYWNjZXNzaWJpbGl0eVZpZXdDb29y
ZGluYXRlcykKICAgICBTZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUp
CiAgICAgUmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKElQQzo6RGF0YVJlZmVy
ZW5jZSBlbGVtZW5Ub2tlbiwgSVBDOjpEYXRhUmVmZXJlbmNlIHdpbmRvd1Rva2VuKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCA4NWU2NTE4NjkyZWQ2MGM3ODhlNzJhN2NlMzJmM2YwZTE1Y2E3NzgxLi4wNmQ1NWYxMDg3Y2E0
MDJjOTU1ZWE1YjU4MjE0NzM0MDIxMTQwMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTU3LDExICs1NTcsNiBAQCB2
b2lkIFdlYlBhZ2U6OmNsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGUoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpzZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90LCBjb25zdCBT
dHJpbmcmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIGJvb2wgV2ViUGFnZTo6cGVy
Zm9ybU5vbkVkaXRpbmdCZWhhdmlvckZvclNlbGVjdG9yKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OktleWJvYXJkRXZlbnQqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDM5YWI3
NDhlMTI2NmQ1OWI3YzYyMGE3N2MzMzk4MzllZDEyMTgxODguLmIxZWUwMTNlOGIwZjUzYjBkN2M1
ZDhlMTE3MDkzY2JkMDFhZGI1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC0zMjEsMTQgKzMyMSw2IEBAIGJvb2wgV2Vi
UGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAg
ICAgcmV0dXJuIGV2ZW50V2FzSGFuZGxlZDsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZW5kQ29tcGxl
eFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKLXsKLSAgICBmb3IgKGF1dG8qIHBsdWdpblZp
ZXcgOiBtX3BsdWdpblZpZXdzKSB7Ci0gICAgICAgIGlmIChwbHVnaW5WaWV3LT5zZW5kQ29tcGxl
eFRleHRJbnB1dChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgdGV4dElucHV0KSkK
LSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQogdm9pZCBXZWJQYWdlOjphdHRyaWJ1dGVk
U3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhjb25zdCBFZGl0aW5nUmFuZ2UmIGVkaXRp
bmdSYW5nZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpBdHRyaWJ1dGVk
U3RyaW5nJiwgY29uc3QgRWRpdGluZ1JhbmdlJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>