<?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>130316</bug_id>
          
          <creation_ts>2014-03-16 18:57:13 -0700</creation_ts>
          <short_desc>[GTK][CMake] Fix WebKit2 unused parameter warnings</short_desc>
          <delta_ts>2014-03-17 14:34:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jae Hyun Park">jaepark</reporter>
          <assigned_to name="Jae Hyun Park">jaepark</assigned_to>
          <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991060</commentid>
    <comment_count>0</comment_count>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2014-03-16 18:57:13 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991061</commentid>
    <comment_count>1</comment_count>
      <attachid>226869</attachid>
    <who name="Jae Hyun Park">jaepark</who>
    <bug_when>2014-03-16 18:59:57 -0700</bug_when>
    <thetext>Created attachment 226869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991062</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-16 19:00:30 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991400</commentid>
    <comment_count>3</comment_count>
      <attachid>226869</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-17 14:34:18 -0700</bug_when>
    <thetext>Comment on attachment 226869
Patch

Clearing flags on attachment: 226869

Committed r165760: &lt;http://trac.webkit.org/changeset/165760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991401</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-17 14:34:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226869</attachid>
            <date>2014-03-16 18:59:57 -0700</date>
            <delta_ts>2014-03-17 14:34:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130316-20140317110008.patch</filename>
            <type>text/plain</type>
            <size>57675</size>
            <attacher name="Jae Hyun Park">jaepark</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWQ2YmNhMzQ4MTc3YTAz
MTc0OGY5NjhkNjI0NDVhM2ZkZTY2ZDdkZC4uMDM2Nzk5NmUzMjk3Zjg3YWU3YzViMjA5NWQ0N2Yy
NjdkMDhlODI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE0LTAzLTE2ICBKYWUg
SHl1biBQYXJrICA8amFlcGFya0B3ZWJraXQub3JnPgorCisgICAgICAgIFtHVEtdW0NNYWtlXSBG
aXggV2ViS2l0MiB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzMTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsu
Y3BwOiBGaXggdW51c2VkIHBhcmFtZXRlciB3YXJuaW5ncy4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHA6IERpdHRvLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5jcHA6IERpdHRv
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkQ2xpZW50LmNwcDog
RGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNl
LmNwcDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRy
b2xsZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3Jt
Q2xpZW50LmNwcDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2Vv
bG9jYXRpb25Qcm92aWRlci5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdExvYWRlckNsaWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFBsdWdpbi5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFBvbGljeUNsaWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcDogRGl0dG8uCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDogRGl0dG8uCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcDogRGl0dG8uCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6IERpdHRvLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDogRGl0dG8uCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VBY2Nlc3NpYmxlLmNw
cDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViVmlld0Jhc2VJbnB1dE1l
dGhvZEZpbHRlci5jcHA6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvVGV4dENoZWNr
ZXJHdGsuY3BwOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51
UHJveHlHdGsuY3BwOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVu
dVByb3h5R3RrLmNwcDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmNwcDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHA6IERpdHRvLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNw
cDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRWRp
dG9yQ2xpZW50R3RrLmNwcDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHA6IERpdHRvLgorCiAyMDE0LTAzLTE2ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBNb3ZlIEdUSyBXZWJLaXQy
IGNvZGUgdG8gc3RkOjp1bmlxdWVfcHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9X
b3JrUXVldWVHdGsuY3BwCmluZGV4IGRjZGRjN2Y4NGQyZDY3NTdhZDI1NDUxOTk2ZTU4YjZlNGQ0
MDRjM2YuLmQ0ZDU2NWJmMTVjYWIxMTM3ODFiZTM2MTM3MDAxODQ5OTA5MTBhZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwCkBAIC04Nyw3ICs4Nyw3
IEBAIHB1YmxpYzoKICAgICAgICAgbV9jbG9zZUZ1bmN0aW9uKCk7CiAgICAgfQogCi0gICAgc3Rh
dGljIGdib29sZWFuIGV2ZW50Q2FsbGJhY2soR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRpb24g
Y29uZGl0aW9uLCBTb2NrZXRFdmVudFNvdXJjZSogZXZlbnRTb3VyY2UpCisgICAgc3RhdGljIGdi
b29sZWFuIGV2ZW50Q2FsbGJhY2soR1NvY2tldCosIEdJT0NvbmRpdGlvbiBjb25kaXRpb24sIFNv
Y2tldEV2ZW50U291cmNlKiBldmVudFNvdXJjZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChldmVu
dFNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1Bh
Z2VDbGllbnRJbXBsLmNwcAppbmRleCBmYjUzMGIxN2QxZDMyN2JkOTBhMzljNGQxYzcyNzc0ZGE1
NjAyZDAzLi45MWZhYzA4YWFlYWU1NmI0M2VjNjA0Y2FmZmY0ZGZiNDY2N2FhY2Q2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3Bw
CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpc3BsYXlWaWV3KCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzY3JvbGxWaWV3
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNjcm9sbE9mZnNldCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNjcm9sbFZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgLyog
c2Nyb2xsT2Zmc2V0ICovKQogewogICAgIHNldFZpZXdOZWVkc0Rpc3BsYXkoc2Nyb2xsUmVjdCk7
CiB9CkBAIC0xNDMsNyArMTQzLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNv
bnN0IEN1cnNvciYgY3Vyc29yKQogICAgICAgICBnZGtfd2luZG93X3NldF9jdXJzb3Iod2luZG93
LCBuZXdDdXJzb3IpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3JIaWRkZW5V
bnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92ZXMpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCAvKiBoaWRkZW5VbnRp
bE1vdXNlTW92ZXMgKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTIyOCw3ICsy
MjgsNyBAQCBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
Q29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiwgY29ucwogfQogI2VuZGlmCiAKLXZvaWQgUGFnZUNs
aWVudEltcGw6OnNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9v
bCBmYWRlT3V0LCBib29sIGFuaW1hdGUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRGaW5kSW5k
aWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgLyogZmFkZU91dCAqLywgYm9v
bCAvKiBhbmltYXRlICovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0zMTEsMTIg
KzMxMSwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpleGl0RnVsbFNjcmVlbigpCiAgICAgd2Vi
a2l0V2ViVmlld0Jhc2VFeGl0RnVsbFNjcmVlbihXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdX
aWRnZXQpKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FbnRlckZ1bGxTY3JlZW4o
Y29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYg
LyogaW5pdGlhbEZyYW1lICovLCBjb25zdCBJbnRSZWN0JiAvKiBmaW5hbEZyYW1lICovKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2FuRXhp
dEZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBm
aW5hbEZyYW1lKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FeGl0RnVsbFNjcmVlbihjb25z
dCBJbnRSZWN0JiAvKiBpbml0aWFsRnJhbWUgKi8sIGNvbnN0IEludFJlY3QmIC8qIGZpbmFsRnJh
bWUgKi8pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRl
bS5jcHAKaW5kZXggNzJmMWUwZjQ2OTkyNTgyYzhmNTVmYmZhNzVhNjFkNmI4Y2VhZWFhMy4uZDRl
N2IwODgxMTVmYWIxZjZiMDNjYTQwZjBlZDYyZTJhZTQ1ZGQ2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRM
aXN0SXRlbS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RydWN0IF9XZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtUHJpdmF0ZSB7CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRCYWNrRm9yd2FyZExp
c3RJdGVtLCB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfaXRlbSwgR19UWVBFX0lOSVRJQUxMWV9V
Tk9XTkVEKQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9jbGFz
c19pbml0KFdlYktpdEJhY2tGb3J3YXJkTGlzdEl0ZW1DbGFzcyogbGlzdEl0ZW1DbGFzcykKK3N0
YXRpYyB2b2lkIHdlYmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX2NsYXNzX2luaXQoV2ViS2l0
QmFja0ZvcndhcmRMaXN0SXRlbUNsYXNzKikKIHsKIH0KIApAQCAtNjEsNyArNjEsNyBAQCBzdGF0
aWMgSGlzdG9yeUl0ZW1zTWFwJiBoaXN0b3J5SXRlbXNNYXAoKQogICAgIHJldHVybiBpdGVtc01h
cDsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0QmFja0ZvcndhcmRMaXN0SXRlbUZpbmFsaXplZChn
cG9pbnRlciB3ZWJMaXN0SXRlbSwgR09iamVjdCogZmluYWxpemVkTGlzdEl0ZW0pCitzdGF0aWMg
dm9pZCB3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtRmluYWxpemVkKGdwb2ludGVyIHdlYkxpc3RJ
dGVtLCBHT2JqZWN0KiAvKiBmaW5hbGl6ZWRMaXN0SXRlbSAqLykKIHsKICAgICBBU1NFUlQoR19P
QkpFQ1QoaGlzdG9yeUl0ZW1zTWFwKCkuZ2V0KHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qPih3ZWJMaXN0SXRlbSkpKSA9PSBmaW5hbGl6ZWRMaXN0SXRlbSk7CiAgICAgaGlzdG9y
eUl0ZW1zTWFwKCkucmVtb3ZlKHN0YXRpY19jYXN0PFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qPih3
ZWJMaXN0SXRlbSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IGVhNWU0Mjc1Nzc5ODVh
Zjc4NDJkZDQwOTBhMjM1ZTQ5YmQ4YTY5NDQuLmRmYjBhNzQxN2IzMDNmOTJjNGQ5OGY5NTEwMjEy
M2NlZjlkMzVkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotc3RhdGljIHZvaWQgZ2V0Q29udGV4dE1lbnVG
cm9tUHJvcG9zZWRNZW51KFdLUGFnZVJlZiwgV0tBcnJheVJlZiBwcm9wb3NlZE1lbnUsIFdLQXJy
YXlSZWYqLCBXS0hpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZ2V0Q29udGV4dE1lbnVG
cm9tUHJvcG9zZWRNZW51KFdLUGFnZVJlZiwgV0tBcnJheVJlZiBwcm9wb3NlZE1lbnUsIFdLQXJy
YXlSZWYqLCBXS0hpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgV0tUeXBlUmVmIC8qIHVz
ZXJEYXRhICovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHdlYmtpdFdlYlZpZXdQ
b3B1bGF0ZUNvbnRleHRNZW51KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgdG9JbXBsKHBy
b3Bvc2VkTWVudSksIHRvSW1wbChoaXRUZXN0UmVzdWx0KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmNw
cAppbmRleCA1ZDA1OWJjZjY3YjY3ODExZDNkZWU0OGNhMWY4MTBlZTUwYWU4ZDlmLi44ZDU4Mzcx
MzQwZmYxNDYxNGIyYTg1YThkODVjMzcxYTZjMTc1ZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudUl0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51SXRlbS5jcHAK
QEAgLTYyLDcgKzYyLDcgQEAgc3RydWN0IF9XZWJLaXRDb250ZXh0TWVudUl0ZW1Qcml2YXRlIHsK
IAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdENvbnRleHRNZW51SXRlbSwgd2Via2l0X2NvbnRl
eHRfbWVudV9pdGVtLCBHX1RZUEVfSU5JVElBTExZX1VOT1dORUQpCiAKLXN0YXRpYyB2b2lkIHdl
YmtpdF9jb250ZXh0X21lbnVfaXRlbV9jbGFzc19pbml0KFdlYktpdENvbnRleHRNZW51SXRlbUNs
YXNzKiBpdGVtQ2xhc3MpCitzdGF0aWMgdm9pZCB3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fY2xh
c3NfaW5pdChXZWJLaXRDb250ZXh0TWVudUl0ZW1DbGFzcyopCiB7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkQ2xpZW50
LmNwcAppbmRleCAxOThjYzY4ZjliZjAwZGJiODA5NzU0ZGIyOTY3Yjk4NmNhNGI3ZmRjLi4yZGYx
MThjMDUzYzcwOTI0MGQyMDAxNGI5ZGYxMDY4ZDZkMmUxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWRDbGllbnQuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIHN0YXRpYyB2b2lkIGRpZFN0YXJ0KFdLQ29udGV4dFJlZiwgV0tE
b3dubG9hZFJlZiB3a0Rvd25sb2FkLCBjb25zdCB2b2lkKiBjbGllbnRJCiAgICAgd2Via2l0V2Vi
Q29udGV4dERvd25sb2FkU3RhcnRlZChXRUJLSVRfV0VCX0NPTlRFWFQoY2xpZW50SW5mbyksIGRv
d25sb2FkLmdldCgpKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdLQ29u
dGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1VSTFJlc3BvbnNlUmVmIHdrUmVz
cG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLVVJMUmVzcG9u
c2VSZWYgd2tSZXNwb25zZSwgY29uc3Qgdm9pZCogLyogY2xpZW50SW5mbyAqLykKIHsKICAgICBH
UmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNy
ZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAgICAgaWYgKHdlYmtpdERvd25sb2Fk
SXNDYW5jZWxsZWQoZG93bmxvYWQuZ2V0KCkpKQpAQCAtNDgsMTMgKzQ4LDEzIEBAIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3du
bG9hZCwgV0tVUkxSZXNwCiAgICAgd2Via2l0RG93bmxvYWRTZXRSZXNwb25zZShkb3dubG9hZC5n
ZXQoKSwgcmVzcG9uc2UuZ2V0KCkpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlRGF0YShX
S0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgdWludDY0X3QgbGVuZ3RoLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZURhdGEoV0tDb250
ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIHVpbnQ2NF90IGxlbmd0aCwgY29uc3Qg
dm9pZCogLyogY2xpZW50SW5mbyAqLykKIHsKICAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBk
b3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rv
d25sb2FkKSk7CiAgICAgd2Via2l0RG93bmxvYWROb3RpZnlQcm9ncmVzcyhkb3dubG9hZC5nZXQo
KSwgbGVuZ3RoKTsKIH0KIAotc3RhdGljIFdLU3RyaW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlZEZpbGVuYW1lKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2Fk
LCBXS1N0cmluZ1JlZiBmaWxlbmFtZSwgYm9vbCogYWxsb3dPdmVyd3JpdGUsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCitzdGF0aWMgV0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRoU3Vn
Z2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdL
U3RyaW5nUmVmIGZpbGVuYW1lLCBib29sKiAvKiBhbGxvd092ZXJ3cml0ZSAqLywgY29uc3Qgdm9p
ZCogLyogY2xpZW50SW5mbyAqLykKIHsKICAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3du
bG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25s
b2FkKSk7CiAgICAgQ1N0cmluZyBkZXN0aW5hdGlvblVSSSA9IHdlYmtpdERvd25sb2FkRGVjaWRl
RGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoZG93bmxvYWQuZ2V0KCksCkBAIC02Miwx
MyArNjIsMTMgQEAgc3RhdGljIFdLU3RyaW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dl
c3RlZEZpbGVuYW1lKFdLQ29udGV4dFJlZiwgV0tEb3dubG8KICAgICByZXR1cm4gV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoZGVzdGluYXRpb25VUkkuZGF0YSgpKTsKIH0KIAotc3RhdGlj
IHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdr
RG93bmxvYWQsIFdLU3RyaW5nUmVmIHBhdGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0
aWMgdm9pZCBkaWRDcmVhdGVEZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYg
d2tEb3dubG9hZCwgV0tTdHJpbmdSZWYgcGF0aCwgY29uc3Qgdm9pZCogLyogY2xpZW50SW5mbyAq
LykKIHsKICAgICBHUmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNv
bnRleHRHZXRPckNyZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAgICAgd2Via2l0
RG93bmxvYWREZXN0aW5hdGlvbkNyZWF0ZWQoZG93bmxvYWQuZ2V0KCksIHRvSW1wbChwYXRoKS0+
c3RyaW5nKCkudXRmOCgpKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmFpbChXS0NvbnRleHRSZWYs
IFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tFcnJvclJlZiBlcnJvciwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZhaWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2Fk
UmVmIHdrRG93bmxvYWQsIFdLRXJyb3JSZWYgZXJyb3IsIGNvbnN0IHZvaWQqIC8qIGNsaWVudElu
Zm8gKi8pCiB7CiAgICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gZG93bmxvYWQgPSB3ZWJraXRX
ZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZCh0b0ltcGwod2tEb3dubG9hZCkpOwogICAgIGlm
ICh3ZWJraXREb3dubG9hZElzQ2FuY2VsbGVkKGRvd25sb2FkLmdldCgpKSkgewpAQCAtNzksMTQg
Kzc5LDE0IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVm
IHdrRG93bmxvYWQsIFdLRXJyb3JSZWYgZXJyb3IsIGNvCiAgICAgd2Via2l0V2ViQ29udGV4dFJl
bW92ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZENh
bmNlbChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENhbmNlbChXS0NvbnRleHRSZWYsIFdLRG93bmxv
YWRSZWYgd2tEb3dubG9hZCwgY29uc3Qgdm9pZCogLyogY2xpZW50SW5mbyAqLykKIHsKICAgICBH
UmVmUHRyPFdlYktpdERvd25sb2FkPiBkb3dubG9hZCA9IHdlYmtpdFdlYkNvbnRleHRHZXRPckNy
ZWF0ZURvd25sb2FkKHRvSW1wbCh3a0Rvd25sb2FkKSk7CiAgICAgd2Via2l0RG93bmxvYWRDYW5j
ZWxsZWQoZG93bmxvYWQuZ2V0KCkpOwogICAgIHdlYmtpdFdlYkNvbnRleHRSZW1vdmVEb3dubG9h
ZCh0b0ltcGwod2tEb3dubG9hZCkpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGaW5pc2goV0tDb250
ZXh0UmVmIHdrQ29udGV4dCwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkRmluaXNoKFdLQ29udGV4dFJlZiwgV0tEb3dubG9h
ZFJlZiB3a0Rvd25sb2FkLCBjb25zdCB2b2lkKiAvKiBjbGllbnRJbmZvICovKQogewogICAgIEdS
ZWZQdHI8V2ViS2l0RG93bmxvYWQ+IGRvd25sb2FkID0gd2Via2l0V2ViQ29udGV4dEdldE9yQ3Jl
YXRlRG93bmxvYWQodG9JbXBsKHdrRG93bmxvYWQpKTsKICAgICB3ZWJraXREb3dubG9hZEZpbmlz
aGVkKGRvd25sb2FkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IDBlZGEyNzI5ZWU0
ZTc3ZmUzNDAzMWQxNTgyMGQ5YmNhN2YyMDdkOWEuLmY0NWZlODQ3ZjZmMjU4ZGQ5YzRlOGY1MDRh
YjJjMDBiNmQ4Mjg1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApAQCAtMTgxLDcgKzE4MSw3IEBA
IHN0YXRpYyB2b2lkIHByb2Nlc3NQZW5kaW5nSWNvbnNGb3JQYWdlVVJMKFdlYktpdEZhdmljb25E
YXRhYmFzZSogZGF0YWJhc2UsIGNvbnN0CiAgICAgZGVsZXRlUGVuZGluZ0ljb25SZXF1ZXN0cyhk
YXRhYmFzZSwgcGVuZGluZ0ljb25SZXF1ZXN0cywgcGFnZVVSTCk7CiB9CiAKLXN0YXRpYyB2b2lk
IGRpZENoYW5nZUljb25Gb3JQYWdlVVJMQ2FsbGJhY2soV0tJY29uRGF0YWJhc2VSZWYgd2tJY29u
RGF0YWJhc2UsIFdLVVJMUmVmIHdrUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0
YXRpYyB2b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMQ2FsbGJhY2soV0tJY29uRGF0YWJhc2VS
ZWYsIFdLVVJMUmVmIHdrUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBX
ZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlID0gV0VCS0lUX0ZBVklDT05fREFUQUJBU0Uo
Y2xpZW50SW5mbyk7CiAgICAgaWYgKCFkYXRhYmFzZS0+cHJpdi0+aWNvbkRhdGFiYXNlLT5pc1Vy
bEltcG9ydENvbXBsZXRlZCgpKQpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyB2b2lkIGRpZENo
YW5nZUljb25Gb3JQYWdlVVJMQ2FsbGJhY2soV0tJY29uRGF0YWJhc2VSZWYgd2tJY29uRGF0YWJh
c2UsIFdLCiAgICAgZ19zaWduYWxfZW1pdChkYXRhYmFzZSwgc2lnbmFsc1tGQVZJQ09OX0NIQU5H
RURdLCAwLCBwYWdlVVJMLnV0ZjgoKS5kYXRhKCksIGN1cnJlbnRJY29uVVJMLnV0ZjgoKS5kYXRh
KCkpOwogfQogCi1zdGF0aWMgdm9pZCBpY29uRGF0YVJlYWR5Rm9yUGFnZVVSTENhbGxiYWNrKFdL
SWNvbkRhdGFiYXNlUmVmIHdrSWNvbkRhdGFiYXNlLCBXS1VSTFJlZiB3a1BhZ2VVUkwsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBpY29uRGF0YVJlYWR5Rm9yUGFnZVVSTENh
bGxiYWNrKFdLSWNvbkRhdGFiYXNlUmVmLCBXS1VSTFJlZiB3a1BhZ2VVUkwsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwcm9j
ZXNzUGVuZGluZ0ljb25zRm9yUGFnZVVSTChXRUJLSVRfRkFWSUNPTl9EQVRBQkFTRShjbGllbnRJ
bmZvKSwgdG9JbXBsKHdrUGFnZVVSTCktPnN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRl
eCA2NTQ0ZGEwNTQ3YjUyMzZiYWEwZjU4MWViNDJhNjJjODY2NWJkMjliLi4xN2IxZDVkMmI3ZWU4
MGYxMjAwNmViNTgxMDJjOTk4ZGU5ODkxOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuY3BwCkBAIC0xMDEs
MTcgKzEwMSwxNyBAQCBzdGF0aWMgaW5saW5lIFdlYktpdEZpbmRPcHRpb25zIHRvV2ViS2l0Rmlu
ZE9wdGlvbnModWludDMyX3QgZmluZE9wdGlvbnMpCiAgICAgICAgIHwgKGZpbmRPcHRpb25zICYg
RmluZE9wdGlvbnNXcmFwQXJvdW5kID8gV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQX0FST1VORCA6
IDApKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmLCB1
bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIGdfc2ln
bmFsX2VtaXQoV0VCS0lUX0ZJTkRfQ09OVFJPTExFUihjbGllbnRJbmZvKSwgc2lnbmFsc1tGT1VO
RF9URVhUXSwgMCwgbWF0Y2hDb3VudCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZhaWxUb0ZpbmRT
dHJpbmcoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHN0cmluZywgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoV0tQYWdlUmVmLCBXS1N0
cmluZ1JlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBnX3NpZ25hbF9lbWl0KFdF
QktJVF9GSU5EX0NPTlRST0xMRVIoY2xpZW50SW5mbyksIHNpZ25hbHNbRkFJTEVEX1RPX0ZJTkRf
VEVYVF0sIDApOwogfQogCi1zdGF0aWMgdm9pZCBkaWRDb3VudFN0cmluZ01hdGNoZXMoV0tQYWdl
UmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHN0cmluZywgdW5zaWduZWQgbWF0Y2hDb3VudCwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENvdW50U3RyaW5nTWF0Y2hlcyhXS1Bh
Z2VSZWYsIFdLU3RyaW5nUmVmLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogICAgIGdfc2lnbmFsX2VtaXQoV0VCS0lUX0ZJTkRfQ09OVFJPTExFUihjbGll
bnRJbmZvKSwgc2lnbmFsc1tDT1VOVEVEX01BVENIRVNdLCAwLCBtYXRjaENvdW50KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1DbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybUNsaWVu
dC5jcHAKaW5kZXggYTA3ZjA0OTQ4NzllNzcxMWQ5NDgwYTE3NGM5NjA5NzY5ZmU2NTUwYS4uN2Zi
ZDNhODQyNGE2MGQ0NjYzMDRjYTRlY2JhNmEyZTU3N2QyNWUwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybUNsaWVudC5jcHAKQEAgLTI4
LDcgKzI4LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotc3RhdGljIHZvaWQgd2ls
bFN1Ym1pdEZvcm0oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVSZWYg
c291cmNlRnJhbWUsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBX
S0ZyYW1lUmVmLCBXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS1R5cGVSZWYgLyogdXNlckRhdGEg
Ki8sIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdD4gcmVx
dWVzdCA9IGFkb3B0R1JlZih3ZWJraXRGb3JtU3VibWlzc2lvblJlcXVlc3RDcmVhdGUodG9JbXBs
KHZhbHVlcyksIHRvSW1wbChsaXN0ZW5lcikpKTsKICAgICB3ZWJraXRXZWJWaWV3U3VibWl0Rm9y
bVJlcXVlc3QoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pLCByZXF1ZXN0LmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEdlb2xvY2F0
aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
R2VvbG9jYXRpb25Qcm92aWRlci5jcHAKaW5kZXggMjYxYWJmODFhNzk0Mzc1YzU1MDVkNDA2MWNi
YTg0NDc2MjFlMjMwNC4uYTFmZTUxZTQ3ZTZhNGY3Yjg3MWE4NzYyODNjNGVmOGYyZmZkMzQ0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0R2VvbG9j
YXRpb25Qcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0R2VvbG9jYXRpb25Qcm92aWRlci5jcHAKQEAgLTM4LDEyICszOCwxMiBAQCBzdGF0aWMg
aW5saW5lIFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXIqIHRvR2VvbG9jYXRpb25Qcm92aWRlcihj
b25zdCB2b2lkKiBjbGllbgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXRHZW9sb2NhdGlv
blByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwogfQogCi1zdGF0aWMg
dm9pZCBzdGFydFVwZGF0aW5nQ2FsbGJhY2soV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9j
YXRpb25NYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RhcnRV
cGRhdGluZ0NhbGxiYWNrKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogewogICAgIHRvR2VvbG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RhcnRV
cGRhdGluZygpOwogfQogCi1zdGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCitzdGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB0b0dlb2xvY2F0aW9uUHJvdmlk
ZXIoY2xpZW50SW5mbyktPnN0b3BVcGRhdGluZygpOwogfQpAQCAtOTIsNyArOTIsNyBAQCB2b2lk
IFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI6Om5vdGlmeVBvc2l0aW9uQ2hhbmdlZChpbnQgdGlt
ZXN0YW1wLCBkb3VibGUgbGF0aQogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyLT5wcm92aWRlckRp
ZENoYW5nZVBvc2l0aW9uKHBvc2l0aW9uLmdldCgpKTsKIH0KIAotdm9pZCBXZWJLaXRHZW9sb2Nh
dGlvblByb3ZpZGVyOjpub3RpZnlFcnJvck9jY3VycmVkKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCit2
b2lkIFdlYktpdEdlb2xvY2F0aW9uUHJvdmlkZXI6Om5vdGlmeUVycm9yT2NjdXJyZWQoY29uc3Qg
Y2hhciogLyogbWVzc2FnZSAqLykKIHsKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlci0+cHJvdmlk
ZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKaW5kZXggYWI5
N2QyOTA4M2M5MjhlYWY5NTVhNGUzMmQ0NzkzMGQwMDU2ZDI2OS4uYmVkNTk1YmUyODM5ZmEwOWIz
OTllY2QxZjI0YzFiZmVlODJlNzlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBA
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0
YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3N0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgLyogdXNlckRhdGEgKi8sIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQog
ICAgICAgICByZXR1cm47CkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
CiAgICAgd2Via2l0V2ViVmlld0xvYWRDaGFuZ2VkKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSwgV0VCS0lUX0xPQURfU1RBUlRFRCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKiB1c2VyRGF0
YSAqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5G
cmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFcKICAgICB3ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQoV0VCS0lUX1dFQl9W
SUVXKGNsaWVudEluZm8pLCBXRUJLSVRfTE9BRF9SRURJUkVDVEVEKTsKIH0KIAotc3RhdGljIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9y
UmVmIGVycm9yLCBXS1R5cGVSZWYgLyogdXNlckRhdGEgKi8sIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1
cm47CkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmCiAgICAgICAgIHdl
YmtpdFdlYlZpZXdMb2FkRmFpbGVkKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwgV0VCS0lU
X0xPQURfU1RBUlRFRCwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwg
d2ViRXJyb3IuZ2V0KCkpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUo
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKiB1c2VyRGF0YSAqLywgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFt
ZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHZvaWQgZGlkQ29t
bWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVS
ZWYgdXMKICAgICB3ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQoV0VCS0lUX1dFQl9WSUVXKGNsaWVu
dEluZm8pLCBXRUJLSVRfTE9BRF9DT01NSVRURUQpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZpbmlz
aExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKiB1
c2VyRGF0YSAqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJ
c01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTc5LDcgKzc5LDcgQEAgc3Rh
dGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1R5cGVSZWYgdXMKICAgICB3ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQoV0VCS0lU
X1dFQl9WSUVXKGNsaWVudEluZm8pLCBXRUJLSVRfTE9BRF9GSU5JU0hFRCk7CiB9CiAKLXN0YXRp
YyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUp
KQogICAgICAgICByZXR1cm47CkBAIC05MSw3ICs5MSw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxM
b2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
RXJyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJM
KCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCkpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JG
cmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdL
RnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTk5LDcgKzk5LDcg
QEAgc3RhdGljIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLAogICAgIHdlYmtpdFdlYlZpZXdVcGRhdGVVUkkoV0VC
S0lUX1dFQl9WSUVXKGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRpdGxlUmVmLCBXS0ZyYW1l
UmVmIGZyYW1lUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMg
dm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxl
UmVmLCBXS0ZyYW1lUmVmIGZyYW1lUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWVSZWYpKQogICAgICAgICBy
ZXR1cm47CkBAIC0xMDcsMTIgKzEwNywxMiBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGl0bGVSZWYsIFdLRnJhbQogICAg
IHdlYmtpdFdlYlZpZXdTZXRUaXRsZShXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIHRvSW1w
bCh0aXRsZVJlZiktPnN0cmluZygpLnV0ZjgoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZv
aWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiwgV0tUeXBlUmVmIC8qIHVzZXJEYXRhICovLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewog
ICAgIHdlYmtpdFdlYlZpZXdJbnNlY3VyZUNvbnRlbnREZXRlY3RlZChXRUJLSVRfV0VCX1ZJRVco
Y2xpZW50SW5mbyksIFdFQktJVF9JTlNFQ1VSRV9DT05URU5UX0RJU1BMQVlFRCk7CiB9CiAKLXN0
YXRpYyB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCitzdGF0aWMgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYsIFdLVHlwZVJlZiAvKiB1c2VyRGF0YSAqLywgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbykKIHsKICAgICB3ZWJraXRXZWJWaWV3SW5zZWN1cmVDb250ZW50RGV0ZWN0ZWQoV0VCS0lU
X1dFQl9WSUVXKGNsaWVudEluZm8pLCBXRUJLSVRfSU5TRUNVUkVfQ09OVEVOVF9SVU4pOwogfQpA
QCAtMTIyLDE3ICsxMjIsMTcgQEAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQYWdl
UmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgd2Via2l0V2ViVmlld1NldEVz
dGltYXRlZExvYWRQcm9ncmVzcyhXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdLUGFnZUdl
dEVzdGltYXRlZFByb2dyZXNzKHBhZ2UpKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFj
a0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRk
ZWRJdGVtLCBXS0FycmF5UmVmIHJlbW92ZWRJdGVtcywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3N0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYsIFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJyYXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHdlYmtpdEJhY2tGb3J3YXJkTGlzdENoYW5nZWQo
d2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdChXRUJLSVRfV0VCX1ZJRVcoY2xp
ZW50SW5mbykpLCB0b0ltcGwoYWRkZWRJdGVtKSwgdG9JbXBsKHJlbW92ZWRJdGVtcykpOwogfQog
Ci1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UmVmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZShXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYsIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgd2Via2l0V2ViVmll
d0hhbmRsZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSwgdG9JbXBsKGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBy
b2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0
YXRpYyB2b2lkIHByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgd2Via2l0V2ViVmlld1dlYlByb2Nlc3NDcmFzaGVkKFdFQktJVF9XRUJfVklF
VyhjbGllbnRJbmZvKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UGx1Z2luLmNwcAppbmRleCA5NzdhZmE0NTAzZDU4ODY0MGMwZWRjZmJlNzc2Y2Q2
MDdiYzM3ZTE2Li5kMTYyZGI4YjI0ZWFlMTc1NDFkMTgzMTRkZDZmNTEwOThiNGJiNTk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQbHVnaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBsdWdpbi5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgc3RydWN0IF9XZWJLaXRQbHVnaW5Qcml2YXRlIHsKIAogV0VCS0lU
X0RFRklORV9UWVBFKFdlYktpdFBsdWdpbiwgd2Via2l0X3BsdWdpbiwgR19UWVBFX09CSkVDVCkK
IAotc3RhdGljIHZvaWQgd2Via2l0X3BsdWdpbl9jbGFzc19pbml0KFdlYktpdFBsdWdpbkNsYXNz
KiBwbHVnaW5DbGFzcykKK3N0YXRpYyB2b2lkIHdlYmtpdF9wbHVnaW5fY2xhc3NfaW5pdChXZWJL
aXRQbHVnaW5DbGFzcyopCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCmluZGV4IDA4MmMzYzRmZDVjMTVk
ZTRkY2I0YTFmMjA4YmJlMjg4ZjYzYTJkOTUuLjFhZTliMTBmZTRkNzQwOTYwM2ExZGNmYTY1Y2Ix
MDQ2OGZlYmM3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFBvbGljeUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgaW5s
aW5lIFdlYktpdE5hdmlnYXRpb25UeXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFtZU5h
dmlnYXRpb25UeXBlCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lTmF2
aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLRnJhbWVSZWYgb3JpZ2luYXRpbmdGcmFt
ZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGlj
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiwg
V0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5l
ciwgV0tUeXBlUmVmIC8qIHVzZXJEYXRhICovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewog
ICAgIEdSZWZQdHI8V2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uPiBkZWNpc2lvbiA9CiAg
ICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVhdGUodG9X
ZWJLaXROYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlwZSksCkBAIC02NCw3ICs2NCw3IEBAIHN0
YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2Us
IFdLRnJhbWVSZWYgZnJhbWUsIFdLCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXRUJLSVRfUE9MSUNZX0RFQ0lTSU9OKGRlY2lzaW9uLmdldCgpKSk7CiB9CiAKLXN0YXRpYyB2
b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50
TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VS
TFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5
TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyogdXNlckRhdGEgKi8sIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgR1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb24+IGRlY2lzaW9uID0KICAgICAgICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbkNyZWF0ZSh0b1dlYktpdE5hdmlnYXRpb25UeXBlKG5hdmlnYXRpb25U
eXBlKSwKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0YKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QT0xJQ1lfREVDSVNJT04oZGVjaXNp
b24uZ2V0KCkpKTsKIH0KIAotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2Us
IFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgV0tGcmFtZVBv
bGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYsIFdLVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJl
ZiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVm
IGxpc3RlbmVyLCBXS1R5cGVSZWYgLyogdXNlckRhdGEgKi8sIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgR1JlZlB0cjxXZWJLaXRSZXNwb25zZVBvbGljeURlY2lzaW9uPiBkZWNpc2lv
biA9CiAgICAgICAgIGFkb3B0R1JlZih3ZWJraXRSZXNwb25zZVBvbGljeURlY2lzaW9uQ3JlYXRl
KHRvSW1wbChyZXF1ZXN0KSwgdG9JbXBsKHJlc3BvbnNlKSwgY2FuU2hvd01JTUVUeXBlLCB0b0lt
cGwobGlzdGVuZXIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRSZXF1ZXN0TWFuYWdlckNsaWVudC5jcHAKaW5kZXggNzJmOTFl
YzJlNzdkYzFiOTJiMWJlOGI2MmZmZWFlMTlhMWExM2RkYy4uZjkxODljOTE2ZTVkMGQxYzMyYTYx
ZmI1YmFmMWEwNDY4OGE0MjExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFJlcXVlc3RNYW5hZ2VyQ2xpZW50LmNwcApAQCAt
MjQsNyArMjQsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1zdGF0aWMgdm9pZCBz
dGFydExvYWRpbmcoV0tTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVx
dWVzdE1hbmFnZXJSZWYsIHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVzdFJl
ZiByZXF1ZXN0UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgc3RhcnRM
b2FkaW5nKFdLU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXJSZWYsIHVpbnQ2NF90IGN1
c3RvbVByb3RvY29sSUQsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewogICAgIHdlYmtpdFdlYkNvbnRleHRTdGFydExvYWRpbmdDdXN0b21Qcm90
b2NvbChXRUJLSVRfV0VCX0NPTlRFWFQoY2xpZW50SW5mbyksIGN1c3RvbVByb3RvY29sSUQsIHRv
SW1wbChyZXF1ZXN0UmVmKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5jcHAKaW5kZXggNjliNGIwOTFiZmI3ZmExMDk0
MWY4MTY5MThiZTY2MDc5OWU2MGJkNC4uY2IyMTdlNTQ4NTliNzZiZjllMGNmMjk5NDk0NTA4OTFi
YWNiNGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VGV4dENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFRleHRDaGVja2VyLmNwcApAQCAtNDcsMTIgKzQ3LDEyIEBAIHN0YXRpYyB2b2lkIHNl
dENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZENhbGxiYWNrKGJvb2wgZW5hYmxlZCwgY29u
c3Qgdm9pZCoKICAgICB0b1RleHRDaGVja2VyKGNsaWVudEluZm8pLT5zZXRTcGVsbENoZWNraW5n
RW5hYmxlZChlbmFibGVkKTsKIH0KIAotc3RhdGljIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5n
Q2FsbGJhY2sodWludDY0X3QgdGFnLCBXS1N0cmluZ1JlZiB0ZXh0LCBpbnQzMl90KiBtaXNzcGVs
bGluZ0xvY2F0aW9uLCBpbnQzMl90KiBtaXNzcGVsbGluZ0xlbmd0aCwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZ0NhbGxiYWNrKHVpbnQ2
NF90IC8qIHRhZyAqLywgV0tTdHJpbmdSZWYgdGV4dCwgaW50MzJfdCogbWlzc3BlbGxpbmdMb2Nh
dGlvbiwgaW50MzJfdCogbWlzc3BlbGxpbmdMZW5ndGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CiB7CiAgICAgdG9UZXh0Q2hlY2tlcihjbGllbnRJbmZvKS0+Y2hlY2tTcGVsbGluZ09mU3RyaW5n
KHRvSW1wbCh0ZXh0KS0+c3RyaW5nKCksICptaXNzcGVsbGluZ0xvY2F0aW9uLCAqbWlzc3BlbGxp
bmdMZW5ndGgpOwogfQogCi1zdGF0aWMgV0tBcnJheVJlZiBndWVzc2VzRm9yV29yZENhbGxiYWNr
KHVpbnQ2NF90IHRhZywgV0tTdHJpbmdSZWYgd29yZCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3N0YXRpYyBXS0FycmF5UmVmIGd1ZXNzZXNGb3JXb3JkQ2FsbGJhY2sodWludDY0X3QgLyogdGFn
ICovLCBXS1N0cmluZ1JlZiB3b3JkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFZl
Y3RvcjxTdHJpbmc+IGd1ZXNzZXMgPSB0b1RleHRDaGVja2VyKGNsaWVudEluZm8pLT5nZXRHdWVz
c2VzRm9yV29yZCh0b0ltcGwod29yZCktPnN0cmluZygpKTsKICAgICBpZiAoZ3Vlc3Nlcy5pc0Vt
cHR5KCkpCkBAIC02NywxMiArNjcsMTIgQEAgc3RhdGljIFdLQXJyYXlSZWYgZ3Vlc3Nlc0Zvcldv
cmRDYWxsYmFjayh1aW50NjRfdCB0YWcsIFdLU3RyaW5nUmVmIHdvcmQsIGNvbnN0IHYKICAgICBy
ZXR1cm4gd2tTdWdnZXN0aW9uczsKIH0KIAotc3RhdGljIHZvaWQgbGVhcm5Xb3JkQ2FsbGJhY2so
dWludDY0X3QgdGFnLCBXS1N0cmluZ1JlZiB3b3JkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
c3RhdGljIHZvaWQgbGVhcm5Xb3JkQ2FsbGJhY2sodWludDY0X3QgLyogdGFnICovLCBXS1N0cmlu
Z1JlZiB3b3JkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHRvVGV4dENoZWNrZXIo
Y2xpZW50SW5mbyktPmxlYXJuV29yZCh0b0ltcGwod29yZCktPnN0cmluZygpKTsKIH0KIAotc3Rh
dGljIHZvaWQgaWdub3JlV29yZENhbGxiYWNrKHVpbnQ2NF90IHRhZywgV0tTdHJpbmdSZWYgd29y
ZCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIGlnbm9yZVdvcmRDYWxsYmFj
ayh1aW50NjRfdCAvKiB0YWcgKi8sIFdLU3RyaW5nUmVmIHdvcmQsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCiB7CiAgICAgdG9UZXh0Q2hlY2tlcihjbGllbnRJbmZvKS0+aWdub3JlV29yZCh0b0lt
cGwod29yZCktPnN0cmluZygpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCA0ODNiODI3ODYwY2U2NTcyZjNjZjdi
YzUzNTdhZWQ1ZmI1Mjg4YWUyLi45ZTBlZjY4YzM4NjBjZTA4NjlhYjBkYzE2NmNlM2ZmZTIwZDRh
NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
SUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VUlDbGllbnQuY3BwCkBAIC0zMiw4NyArMzIsODcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAotc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiBwYWdlLCBXS1VS
TFJlcXVlc3RSZWYsIFdLRGljdGlvbmFyeVJlZiB3a1dpbmRvd0ZlYXR1cmVzLCBXS0V2ZW50TW9k
aWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0
aWMgV0tQYWdlUmVmIGNyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdL
RGljdGlvbmFyeVJlZiB3a1dpbmRvd0ZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50
TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFdLUGFnZVJlZj4odG9BUEkod2Via2l0V2ViVmlld0NyZWF0ZU5ld1BhZ2UoV0VCS0lU
X1dFQl9WSUVXKGNsaWVudEluZm8pLCB0b0ltcGwod2tXaW5kb3dGZWF0dXJlcykpKSk7CiB9CiAK
LXN0YXRpYyB2b2lkIHNob3dQYWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQorc3RhdGljIHZvaWQgc2hvd1BhZ2UoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQogewogICAgIHdlYmtpdFdlYlZpZXdSZWFkeVRvU2hvd1BhZ2UoV0VCS0lUX1dFQl9WSUVX
KGNsaWVudEluZm8pKTsKIH0KIAotc3RhdGljIHZvaWQgY2xvc2VQYWdlKFdLUGFnZVJlZiBwYWdl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgY2xvc2VQYWdlKFdLUGFnZVJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3ZWJraXRXZWJWaWV3Q2xvc2VQYWdl
KFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tGcmFtZVJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVy
dChXS1BhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgd2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRBbGVydChXRUJL
SVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIHRvSW1wbChtZXNzYWdlKS0+c3RyaW5nKCkudXRmOCgp
KTsKIH0KIAotc3RhdGljIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV0tQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CitzdGF0aWMgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXS1BhZ2VSZWYsIFdLU3RyaW5nUmVm
IG1lc3NhZ2UsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0
dXJuIHdlYmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0Q29uZmlybShXRUJLSVRfV0VCX1ZJRVcoY2xp
ZW50SW5mbyksIHRvSW1wbChtZXNzYWdlKS0+c3RyaW5nKCkudXRmOCgpKTsKIH0KIAotc3RhdGlj
IFdLU3RyaW5nUmVmIHJ1bkphdmFTY3JpcHRQcm9tcHQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRWYWx1ZSwgV0tGcmFtZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyBXS1N0cmluZ1JlZiBydW5KYXZhU2NyaXB0UHJvbXB0
KFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVmYXVsdFZhbHVl
LCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIENTdHJpbmcgcmVz
dWx0ID0gd2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRQcm9tcHQoV0VCS0lUX1dFQl9WSUVXKGNs
aWVudEluZm8pLCB0b0ltcGwobWVzc2FnZSktPnN0cmluZygpLnV0ZjgoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW1wbChkZWZhdWx0
VmFsdWUpLT5zdHJpbmcoKS51dGY4KCkpOwogICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyhyZXN1bHQuZGF0YSgpKTsKIH0KIAotc3RhdGljIGJvb2wgdG9vbGJhcnNBcmVW
aXNpYmxlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIGJv
b2wgdG9vbGJhcnNBcmVWaXNpYmxlKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
IHsKICAgICBXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzKiB3aW5kb3dQcm9wZXJ0aWVzID0gd2Via2l0
X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5m
bykpOwogICAgIHJldHVybiB3ZWJraXRfd2luZG93X3Byb3BlcnRpZXNfZ2V0X3Rvb2xiYXJfdmlz
aWJsZSh3aW5kb3dQcm9wZXJ0aWVzKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0VG9vbGJhcnNBcmVW
aXNpYmxlKFdLUGFnZVJlZiBwYWdlLCBib29sIHRvb2xiYXJzVmlzaWJsZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIHNldFRvb2xiYXJzQXJlVmlzaWJsZShXS1BhZ2VSZWYs
IGJvb2wgdG9vbGJhcnNWaXNpYmxlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdl
YktpdFdpbmRvd1Byb3BlcnRpZXMqIHdpbmRvd1Byb3BlcnRpZXMgPSB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3dpbmRvd19wcm9wZXJ0aWVzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSk7CiAgICAg
d2Via2l0V2luZG93UHJvcGVydGllc1NldFRvb2xiYXJWaXNpYmxlKHdpbmRvd1Byb3BlcnRpZXMs
IHRvb2xiYXJzVmlzaWJsZSk7CiB9CiAKLXN0YXRpYyBib29sIG1lbnVCYXJJc1Zpc2libGUoV0tQ
YWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgYm9vbCBtZW51QmFy
SXNWaXNpYmxlKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXZWJL
aXRXaW5kb3dQcm9wZXJ0aWVzKiB3aW5kb3dQcm9wZXJ0aWVzID0gd2Via2l0X3dlYl92aWV3X2dl
dF93aW5kb3dfcHJvcGVydGllcyhXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwogICAgIHJl
dHVybiB3ZWJraXRfd2luZG93X3Byb3BlcnRpZXNfZ2V0X21lbnViYXJfdmlzaWJsZSh3aW5kb3dQ
cm9wZXJ0aWVzKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0TWVudUJhcklzVmlzaWJsZShXS1BhZ2VS
ZWYgcGFnZSwgYm9vbCBtZW51QmFyVmlzaWJsZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0
YXRpYyB2b2lkIHNldE1lbnVCYXJJc1Zpc2libGUoV0tQYWdlUmVmLCBib29sIG1lbnVCYXJWaXNp
YmxlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdlYktpdFdpbmRvd1Byb3BlcnRp
ZXMqIHdpbmRvd1Byb3BlcnRpZXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19wcm9wZXJ0
aWVzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSk7CiAgICAgd2Via2l0V2luZG93UHJvcGVy
dGllc1NldE1lbnViYXJWaXNpYmxlKHdpbmRvd1Byb3BlcnRpZXMsIG1lbnVCYXJWaXNpYmxlKTsK
IH0KIAotc3RhdGljIGJvb2wgc3RhdHVzQmFySXNWaXNpYmxlKFdLUGFnZVJlZiBwYWdlLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIGJvb2wgc3RhdHVzQmFySXNWaXNpYmxlKFdLUGFn
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXZWJLaXRXaW5kb3dQcm9wZXJ0
aWVzKiB3aW5kb3dQcm9wZXJ0aWVzID0gd2Via2l0X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVy
dGllcyhXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwogICAgIHJldHVybiB3ZWJraXRfd2lu
ZG93X3Byb3BlcnRpZXNfZ2V0X3N0YXR1c2Jhcl92aXNpYmxlKHdpbmRvd1Byb3BlcnRpZXMpOwog
fQogCi1zdGF0aWMgdm9pZCBzZXRTdGF0dXNCYXJJc1Zpc2libGUoV0tQYWdlUmVmIHBhZ2UsIGJv
b2wgc3RhdHVzQmFyVmlzaWJsZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lk
IHNldFN0YXR1c0JhcklzVmlzaWJsZShXS1BhZ2VSZWYsIGJvb2wgc3RhdHVzQmFyVmlzaWJsZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzKiB3
aW5kb3dQcm9wZXJ0aWVzID0gd2Via2l0X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhX
RUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwogICAgIHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNT
ZXRTdGF0dXNiYXJWaXNpYmxlKHdpbmRvd1Byb3BlcnRpZXMsIHN0YXR1c0JhclZpc2libGUpOwog
fQogCi1zdGF0aWMgYm9vbCBpc1Jlc2l6YWJsZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3N0YXRpYyBib29sIGlzUmVzaXphYmxlKFdLUGFnZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICBXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzKiB3aW5kb3dQcm9w
ZXJ0aWVzID0gd2Via2l0X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhXRUJLSVRfV0VC
X1ZJRVcoY2xpZW50SW5mbykpOwogICAgIHJldHVybiB3ZWJraXRfd2luZG93X3Byb3BlcnRpZXNf
Z2V0X3Jlc2l6YWJsZSh3aW5kb3dQcm9wZXJ0aWVzKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0SXNS
ZXNpemFibGUoV0tQYWdlUmVmIHBhZ2UsIGJvb2wgcmVzaXphYmxlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQorc3RhdGljIHZvaWQgc2V0SXNSZXNpemFibGUoV0tQYWdlUmVmLCBib29sIHJlc2l6
YWJsZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXZWJLaXRXaW5kb3dQcm9wZXJ0
aWVzKiB3aW5kb3dQcm9wZXJ0aWVzID0gd2Via2l0X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVy
dGllcyhXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbykpOwogICAgIHdlYmtpdFdpbmRvd1Byb3Bl
cnRpZXNTZXRSZXNpemFibGUod2luZG93UHJvcGVydGllcywgcmVzaXphYmxlKTsKIH0KIAotc3Rh
dGljIFdLUmVjdCBnZXRXaW5kb3dGcmFtZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3N0YXRpYyBXS1JlY3QgZ2V0V2luZG93RnJhbWUoV0tQYWdlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewogICAgIEdka1JlY3RhbmdsZSBnZW9tZXRyeSA9IHsgMCwgMCwg
MCwgMCB9OwogICAgIEd0a1dpZGdldCogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwo
R1RLX1dJREdFVChjbGllbnRJbmZvKSk7CkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIFdLUmVj
dCBnZXRXaW5kb3dGcmFtZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
ICAgICByZXR1cm4gV0tSZWN0TWFrZShnZW9tZXRyeS54LCBnZW9tZXRyeS55LCBnZW9tZXRyeS53
aWR0aCwgZ2VvbWV0cnkuaGVpZ2h0KTsKIH0KIAotc3RhdGljIHZvaWQgc2V0V2luZG93RnJhbWUo
V0tQYWdlUmVmIHBhZ2UsIFdLUmVjdCBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0
YXRpYyB2b2lkIHNldFdpbmRvd0ZyYW1lKFdLUGFnZVJlZiwgV0tSZWN0IGZyYW1lLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdlYktpdFdpbmRvd1Byb3BlcnRpZXMqIHdpbmRvd1By
b3BlcnRpZXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19wcm9wZXJ0aWVzKFdFQktJVF9X
RUJfVklFVyhjbGllbnRJbmZvKSk7CiAgICAgR2RrUmVjdGFuZ2xlIGdlb21ldHJ5ID0geyBzdGF0
aWNfY2FzdDxpbnQ+KGZyYW1lLm9yaWdpbi54KSwgc3RhdGljX2Nhc3Q8aW50PihmcmFtZS5vcmln
aW4ueSksCkBAIC0xMzEsNyArMTMxLDcgQEAgc3RhdGljIHZvaWQgc2V0V2luZG93RnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLUmVjdCBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICB3
ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0R2VvbWV0cnkod2luZG93UHJvcGVydGllcywgJmdlb21l
dHJ5KTsKIH0KIAotc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdlUmVm
IHBhZ2UsIFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
c3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV0tQYWdlUmVmLCBXS0hpdFRlc3RS
ZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlw
ZVJlZiAvKiB1c2VyRGF0YSAqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3ZWJr
aXRXZWJWaWV3TW91c2VUYXJnZXRDaGFuZ2VkKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwg
dG9JbXBsKGhpdFRlc3RSZXN1bHQpLCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMobW9k
aWZpZXJzKSk7CiB9CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRGcmFtZShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCopCiAgICAgd2Via2l0
V2ViVmlld1ByaW50RnJhbWUoV0VCS0lUX1dFQl9WSUVXKHRvSW1wbChwYWdlKS0+dmlld1dpZGdl
dCgpKSwgdG9JbXBsKGZyYW1lKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJ1bk9wZW5QYW5lbChXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmIHBh
cmFtZXRlcnMsIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBydW5PcGVuUGFuZWwoV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmLCBXS09wZW5QYW5lbFBhcmFtZXRlcnNSZWYgcGFyYW1ldGVycywgV0tPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAg
ICBHUmVmUHRyPFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0R1JlZih3
ZWJraXRGaWxlQ2hvb3NlclJlcXVlc3RDcmVhdGUodG9JbXBsKHBhcmFtZXRlcnMpLCB0b0ltcGwo
bGlzdGVuZXIpKSk7CiAgICAgd2Via2l0V2ViVmlld1J1bkZpbGVDaG9vc2VyUmVxdWVzdChXRUJL
SVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIHJlcXVlc3QuZ2V0KCkpOwpAQCAtMTUzLDcgKzE1Myw3
IEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXCiAgICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNz
aW9uUmVxdWVzdChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9QRVJNSVNTSU9O
X1JFUVVFU1QoZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5nZXQoKSkpOwogfQogCi1zdGF0
aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3N0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
IHsKICAgICB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5m
bykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcAppbmRleCBmYzhiNGI2NWNjYzZmNDZhZjgzNDRh
ZjY2MDZhMDg5NmVkZGEwMjAyLi5kNGE2NTY5MGRhOGI2NWFlNjFiYTRhYjE3NWIxYzg4ZGIwMmZh
ZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
UklTY2hlbWVSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcApAQCAtNzAsNyArNzAsNyBAQCBzdHJ1Y3QgX1dl
YktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlIHsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktp
dFVSSVNjaGVtZVJlcXVlc3QsIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3QsIEdfVFlQRV9PQkpF
Q1QpCiAKLXN0YXRpYyB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfY2xhc3NfaW5pdChX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3N0YXRpYyB2b2lkIHdl
YmtpdF91cmlfc2NoZW1lX3JlcXVlc3RfY2xhc3NfaW5pdChXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
Q2xhc3MqKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDM1OGI0Yzg2ZjhhNjc2ZTM5NDA1MTc4ODUy
NzQyZTRlMDUyMTdhOTIuLjQwMjJiYjcyZWVkNDIxZTkxZjY0MzY5NjJhMjhjNjE5MjhhOGUxZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuY3BwCkBAIC01NTksNyArNTU5LDcgQEAgc3RhdGljIHZvaWQgZGVzdHJveVBsdWdp
bkxpc3QoR0xpc3QqIHBsdWdpbnMpCiAgICAgZ19saXN0X2ZyZWVfZnVsbChwbHVnaW5zLCBnX29i
amVjdF91bnJlZik7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFdlYkNvbnRleHRHZXRQbHVnaW5U
aHJlYWQoR1Rhc2sqIHRhc2ssIGdwb2ludGVyIG9iamVjdCwgZ3BvaW50ZXIgdGFza0RhdGEsIEdD
YW5jZWxsYWJsZSopCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0R2V0UGx1Z2luVGhyZWFk
KEdUYXNrKiB0YXNrLCBncG9pbnRlciBvYmplY3QsIGdwb2ludGVyIC8qIHRhc2tEYXRhICovLCBH
Q2FuY2VsbGFibGUqKQogewogICAgIFZlY3RvcjxQbHVnaW5Nb2R1bGVJbmZvPiBwbHVnaW5zID0g
V0VCS0lUX1dFQl9DT05URVhUKG9iamVjdCktPnByaXYtPmNvbnRleHQtPnBsdWdpbkluZm9TdG9y
ZSgpLnBsdWdpbnMoKTsKICAgICBHTGlzdCogcmV0dXJuVmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAK
aW5kZXggMDgzZDI3Yzg0Zjc4M2MwNTJjZTY4NWVkZTJmNTcwMmFmM2ZmNTU3MS4uYzUxZjNmM2M3
MzFiZjlkZDg4NDYzYzM5ZDRiZmU2Yjg2Yjg5MTNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0b3IuY3BwCkBAIC0yOTUs
NyArMjk1LDcgQEAgc3RhdGljIGJvb2wgYXR0YWNoKFdLSW5zcGVjdG9yUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAotc3RhdGljIGJvb2wg
ZGV0YWNoKFdLSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3N0YXRpYyBib29sIGRldGFjaChXS0luc3BlY3RvclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIHsKICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKICAgICBnX3NpZ25hbF9lbWl0KFdFQktJ
VF9XRUJfSU5TUEVDVE9SKGNsaWVudEluZm8pLCBzaWduYWxzW0RFVEFDSF0sIDAsICZyZXR1cm5W
YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuY3BwCmluZGV4IDdiOGE4OTQ5YTYyNTI0MGMyNzgzZGEyNDUzODAwMzRlMDdiYTlhZWYu
LmJkNmI1Yzk0YzI3NzQ1YWRkNDM2MmIxYWNlMzBhYTU5NDU5ZjUxZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0yNjUs
NyArMjY1LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdTY3JpcHREaWFsb2coV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U2NyaXB0RGkKICAgICByZXR1cm4gVFJVRTsKIH0K
IAotc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdEZWNpZGVQb2xpY3koV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0UG9saWN5RGVjaXNpb24qIGRlY2lzaW9uLCBXZWJLaXRQb2xpY3lE
ZWNpc2lvblR5cGUgZGVjaXNpb25UeXBlKQorc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdE
ZWNpZGVQb2xpY3koV2ViS2l0V2ViVmlldyosIFdlYktpdFBvbGljeURlY2lzaW9uKiBkZWNpc2lv
biwgV2ViS2l0UG9saWN5RGVjaXNpb25UeXBlIGRlY2lzaW9uVHlwZSkKIHsKICAgICBpZiAoZGVj
aXNpb25UeXBlICE9IFdFQktJVF9QT0xJQ1lfREVDSVNJT05fVFlQRV9SRVNQT05TRSkgewogICAg
ICAgICB3ZWJraXRfcG9saWN5X2RlY2lzaW9uX3VzZShkZWNpc2lvbik7CkBAIC0zNjUsNyArMzY1
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld1VwZGF0ZUZhdmljb25VUkkoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgY29uc3QgY2hhciogZmEKICAgICB3ZWJraXRXZWJWaWV3UmVxdWVzdEZh
dmljb24od2ViVmlldyk7CiB9CiAKLXN0YXRpYyB2b2lkIGZhdmljb25DaGFuZ2VkQ2FsbGJhY2so
V2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSwgY29uc3QgY2hhciogcGFnZVVSSSwgY29u
c3QgY2hhciogZmF2aWNvblVSSSwgV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3N0YXRpYyB2b2lk
IGZhdmljb25DaGFuZ2VkQ2FsbGJhY2soV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiwgY29uc3QgY2hh
ciogcGFnZVVSSSwgY29uc3QgY2hhciogZmF2aWNvblVSSSwgV2ViS2l0V2ViVmlldyogd2ViVmll
dykKIHsKICAgICBpZiAod2ViVmlldy0+cHJpdi0+YWN0aXZlVVJJICE9IHBhZ2VVUkkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTM5OCw3ICszOTgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3
RGlzY29ubmVjdFNldHRpbmdzU2lnbmFsSGFuZGxlcnMoV2ViS2l0V2ViVmlldyogd2ViVmlldwog
ICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhzZXR0aW5ncywgcmVpbnRl
cnByZXRfY2FzdDxncG9pbnRlcj4odXNlckFnZW50Q2hhbmdlZCksIHdlYlZpZXcpOwogfQogCi1z
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3U2V0dGluZ3NDaGFuZ2VkKFdlYktpdFdlYlZpZXdHcm91
cCogZ3JvdXAsIEdQYXJhbVNwZWMqLCBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQorc3RhdGljIHZv
aWQgd2Via2l0V2ViVmlld1NldHRpbmdzQ2hhbmdlZChXZWJLaXRXZWJWaWV3R3JvdXAqLCBHUGFy
YW1TcGVjKiwgV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKICAgICB3ZWJraXRXZWJWaWV3RGlz
Y29ubmVjdFNldHRpbmdzU2lnbmFsSGFuZGxlcnMod2ViVmlldyk7CiAgICAgd2Via2l0V2ViVmll
d1VwZGF0ZVNldHRpbmdzKHdlYlZpZXcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDM5MWZmMzQ2YWUwNjE4
N2E3ZmFjNmEwODEyNjMzMmYxMzc1MDMwNGIuLmU2YzYzY2Y4OTU1ZDU1NDZhODI0NWRjZGE0Yzg0
NTZlMjAwZjExMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCBzdGF0aWMgdm9p
ZCB0b3BsZXZlbFdpbmRvd1Jlc2l6ZUdyaXBWaXNpYmlsaXR5Q2hhbmdlZChHT2JqZWN0KiwgR1Bh
cmFtU3BlYyosIFdlYgogICAgIHdlYmtpdFdlYlZpZXdCYXNlTm90aWZ5UmVzaXplclNpemUod2Vi
Vmlld0Jhc2UpOwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gdG9wbGV2ZWxXaW5kb3dGb2N1c0luRXZl
bnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50Rm9jdXMqLCBXZWJLaXRXZWJWaWV3QmFzZSog
d2ViVmlld0Jhc2UpCitzdGF0aWMgZ2Jvb2xlYW4gdG9wbGV2ZWxXaW5kb3dGb2N1c0luRXZlbnQo
R3RrV2lkZ2V0KiwgR2RrRXZlbnRGb2N1cyosIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFz
ZSkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+
cHJpdjsKICAgICBpZiAoIXByaXYtPmlzSW5XaW5kb3dBY3RpdmUpIHsKQEAgLTE3Niw3ICsxNzYs
NyBAQCBzdGF0aWMgZ2Jvb2xlYW4gdG9wbGV2ZWxXaW5kb3dGb2N1c0luRXZlbnQoR3RrV2lkZ2V0
KiB3aWRnZXQsIEdka0V2ZW50Rm9jdXMqLCBXZQogICAgIHJldHVybiBGQUxTRTsKIH0KIAotc3Rh
dGljIGdib29sZWFuIHRvcGxldmVsV2luZG93Rm9jdXNPdXRFdmVudChHdGtXaWRnZXQqIHdpZGdl
dCwgR2RrRXZlbnRGb2N1cyosIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKK3N0YXRp
YyBnYm9vbGVhbiB0b3BsZXZlbFdpbmRvd0ZvY3VzT3V0RXZlbnQoR3RrV2lkZ2V0KiwgR2RrRXZl
bnRGb2N1cyosIFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKIHsKICAgICBXZWJLaXRX
ZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFzZS0+cHJpdjsKICAgICBpZiAocHJp
di0+aXNJbldpbmRvd0FjdGl2ZSkgewpAQCAtNzI2LDcgKzcyNiw3IEBAIHN0YXRpYyBnYm9vbGVh
biB3ZWJraXRXZWJWaWV3QmFzZVRvdWNoRXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50
VG91Y2gqIGV2CiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRX
ZWJWaWV3QmFzZVF1ZXJ5VG9vbHRpcChHdGtXaWRnZXQqIHdpZGdldCwgZ2ludCB4LCBnaW50IHks
IGdib29sZWFuIGtleWJvYXJkTW9kZSwgR3RrVG9vbHRpcCogdG9vbHRpcCkKK3N0YXRpYyBnYm9v
bGVhbiB3ZWJraXRXZWJWaWV3QmFzZVF1ZXJ5VG9vbHRpcChHdGtXaWRnZXQqIHdpZGdldCwgZ2lu
dCAvKiB4ICovLCBnaW50IC8qIHkgKi8sIGdib29sZWFuIGtleWJvYXJkTW9kZSwgR3RrVG9vbHRp
cCogdG9vbHRpcCkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSBXRUJL
SVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpLT5wcml2OwogCkBAIC03NTAsNyArNzUwLDcgQEAgc3Rh
dGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlUXVlcnlUb29sdGlwKEd0a1dpZGdldCogd2lk
Z2V0LCBnaW50IHgsIGdpbnQgeSwKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1zdGF0
aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURyYWdEYXRhR2V0KEd0a1dpZGdldCogd2lkZ2V0LCBH
ZGtEcmFnQ29udGV4dCogY29udGV4dCwgR3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uRGF0YSwg
Z3VpbnQgaW5mbywgZ3VpbnQgdGltZSkKK3N0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRHJh
Z0RhdGFHZXQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0RyYWdDb250ZXh0KiBjb250ZXh0LCBHdGtT
ZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25EYXRhLCBndWludCBpbmZvLCBndWludCAvKiB0aW1lICov
KQogewogICAgIFdFQktJVF9XRUJfVklFV19CQVNFKHdpZGdldCktPnByaXYtPmRyYWdBbmREcm9w
SGVscGVyLmhhbmRsZUdldERyYWdEYXRhKGNvbnRleHQsIHNlbGVjdGlvbkRhdGEsIGluZm8pOwog
fQpAQCAtNzcwLDcgKzc3MCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ0Vu
ZChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdka0RyYWdBY3Rpb25Ub0RyYWdPcGVy
YXRpb24oZ2RrX2RyYWdfY29udGV4dF9nZXRfc2VsZWN0ZWRfYWN0aW9uKGNvbnRleHQpKSk7CiB9
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ0RhdGFSZWNlaXZlZChHdGtXaWRn
ZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQsIGdpbnQgeCwgZ2ludCB5LCBHdGtT
ZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25EYXRhLCBndWludCBpbmZvLCBndWludCB0aW1lKQorc3Rh
dGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEcmFnRGF0YVJlY2VpdmVkKEd0a1dpZGdldCogd2lk
Z2V0LCBHZGtEcmFnQ29udGV4dCogY29udGV4dCwgZ2ludCAvKiB4ICovLCBnaW50IC8qIHkgKi8s
IEd0a1NlbGVjdGlvbkRhdGEqIHNlbGVjdGlvbkRhdGEsIGd1aW50IGluZm8sIGd1aW50IHRpbWUp
CiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVX
X0JBU0Uod2lkZ2V0KTsKICAgICBJbnRQb2ludCBwb3NpdGlvbjsKQEAgLTg0Miw3ICs4NDIsNyBA
QCBzdGF0aWMgdm9pZCBkcmFnRXhpdGVkQ2FsbGJhY2soR3RrV2lkZ2V0KiB3aWRnZXQsIERyYWdE
YXRhJiBkcmFnRGF0YSwgYm9vbCBkcm9wSAogICAgIHdlYlZpZXdCYXNlLT5wcml2LT5wYWdlUHJv
eHktPnJlc2V0RHJhZ09wZXJhdGlvbigpOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3
QmFzZURyYWdMZWF2ZShHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQs
IGd1aW50IHRpbWUpCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURyYWdMZWF2ZShHdGtX
aWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQsIGd1aW50IC8qIHRpbWUgKi8p
CiB7CiAgICAgV0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0KS0+cHJpdi0+ZHJhZ0FuZERyb3BI
ZWxwZXIuaGFuZGxlRHJhZ0xlYXZlKGNvbnRleHQsIGRyYWdFeGl0ZWRDYWxsYmFjayk7CiB9CkBA
IC04NjQsNyArODY0LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdFdlYlZpZXdCYXNlRHJhZ0Ry
b3AoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0RyYWdDb250ZXh0KiBjb24KIH0KICNlbmRpZiAvLyBF
TkFCTEUoRFJBR19TVVBQT1JUKQogCi1zdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVBhcmVu
dFNldChHdGtXaWRnZXQqIHdpZGdldCwgR3RrV2lkZ2V0KiBvbGRQYXJlbnQpCitzdGF0aWMgdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZVBhcmVudFNldChHdGtXaWRnZXQqIHdpZGdldCwgR3RrV2lkZ2V0
KiAvKiBvbGRQYXJlbnQgKi8pCiB7CiAgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9wYXJlbnQod2lk
Z2V0KSkKICAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRUb3BsZXZlbE9uU2NyZWVuV2luZG93
KFdFQktJVF9XRUJfVklFV19CQVNFKHdpZGdldCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VBY2Nlc3NpYmxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlQWNjZXNz
aWJsZS5jcHAKaW5kZXggN2IwNjlkZDk0Zjg1YWVjMjhjMDZkNzk1YWI5OGU1ZGE1YjZiYjI3OC4u
ZmMyZDA1M2E3MTFiNWFkN2Q4MjY0ZmZiNjFiYTQwNTI5OTdjNTMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VBY2Nlc3NpYmxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZUFjY2Vzc2libGUuY3BwCkBAIC0yOSw3ICsyOSw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmll
d0Jhc2VBY2Nlc3NpYmxlUHJpdmF0ZSB7CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRXZWJW
aWV3QmFzZUFjY2Vzc2libGUsIHdlYmtpdF93ZWJfdmlld19iYXNlX2FjY2Vzc2libGUsIEFUS19U
WVBFX1NPQ0tFVCkKIAotc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VBY2Nlc3NpYmxlV2lk
Z2V0RGVzdHJveWVkKEd0a1dpZGdldCogd2lkZ2V0LCBXZWJLaXRXZWJWaWV3QmFzZUFjY2Vzc2li
bGUqIGFjY2Vzc2libGUpCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUFjY2Vzc2libGVX
aWRnZXREZXN0cm95ZWQoR3RrV2lkZ2V0KiwgV2ViS2l0V2ViVmlld0Jhc2VBY2Nlc3NpYmxlKiBh
Y2Nlc3NpYmxlKQogewogICAgIGFjY2Vzc2libGUtPnByaXYtPndpZGdldCA9IDA7CiAgICAgYXRr
X29iamVjdF9ub3RpZnlfc3RhdGVfY2hhbmdlKEFUS19PQkpFQ1QoYWNjZXNzaWJsZSksIEFUS19T
VEFURV9ERUZVTkNULCBUUlVFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYlZpZXdCYXNlSW5wdXRNZXRob2RGaWx0ZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViVmlld0Jhc2VJbnB1dE1ldGhvZEZpbHRlci5jcHAKaW5k
ZXggOGI4N2MxNTIyMDJhNjI5ZWE0N2YwMWE0MmJmZGVkYjcxNDBiZTVkYS4uNjk1YWU1NmI4Yjkz
ZWQ4ZDAxMzkzOGE1YjZmM2IyNDllMzcwMDZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViVmlld0Jhc2VJbnB1dE1ldGhvZEZpbHRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViVmlld0Jhc2VJbnB1dE1ldGhvZEZp
bHRlci5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBXZWJWaWV3QmFzZUlucHV0TWV0aG9kRmls
dGVyOjpjYW5jZWxDdXJyZW50Q29tcG9zaXRpb24oKQogICAgIG1fd2ViUGFnZVByb3h5LT5jYW5j
ZWxDb21wb3NpdGlvbigpOwogfQogCi12b2lkIFdlYlZpZXdCYXNlSW5wdXRNZXRob2RGaWx0ZXI6
OnNldFByZWVkaXQoU3RyaW5nIG5ld1ByZWVkaXQsIGludCBjdXJzb3JPZmZzZXQpCit2b2lkIFdl
YlZpZXdCYXNlSW5wdXRNZXRob2RGaWx0ZXI6OnNldFByZWVkaXQoU3RyaW5nIG5ld1ByZWVkaXQs
IGludCAvKiBjdXJzb3JPZmZzZXQgKi8pCiB7CiAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIHBhcnNl
IHRoZSBQYW5nb0F0dHJMaXN0IHRoYXQgd2UgZ2V0IGZyb20gdGhlIElNIGNvbnRleHQgaGVyZS4K
ICAgICBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwCmluZGV4IDhkMzA2ZGQy
ZWMzZmZhNWRkOWI3MWQzNzZlMDI3NzRmOGE2NDU1MTAuLmRlMTk0YWQ4OWUyNGRmNGIxMjY3OTlk
MWI2MjlhNTkwNWM5ZjI4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvVGV4dENoZWNrZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
VGV4dENoZWNrZXJHdGsuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6
dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGludDY0X3Qgc3BlbGxEb2N1bWVudFRh
ZywgY28KICAgICBXZWJUZXh0Q2hlY2tlcjo6c2hhcmVkKCktPmNsaWVudCgpLnVwZGF0ZVNwZWxs
aW5nVUlXaXRoR3JhbW1hclN0cmluZyhzcGVsbERvY3VtZW50VGFnLCBiYWRHcmFtbWFyUGhyYXNl
LCBncmFtbWFyRGV0YWlsKTsKIH0KIAotdm9pZCBUZXh0Q2hlY2tlcjo6Z2V0R3Vlc3Nlc0Zvcldv
cmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0
cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpCit2b2lkIFRleHRDaGVja2Vy
OjpnZXRHdWVzc2VzRm9yV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiAvKiBjb250ZXh0ICovLCBWZWN0b3I8U3RyaW5nPiYgZ3Vl
c3NlcykKIHsKICAgICBXZWJUZXh0Q2hlY2tlcjo6c2hhcmVkKCktPmNsaWVudCgpLmd1ZXNzZXNG
b3JXb3JkKHNwZWxsRG9jdW1lbnRUYWcsIHdvcmQsIGd1ZXNzZXMpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5jcHAK
aW5kZXggY2MyNWU2NDRiYmJjYWNkNGFhNGExZTNhYzM1ZWRkNGJkZjgzY2Y4Mi4uMTlhNjk3N2My
N2M5YjZjZmYwZGNmMWZmNWRjOWM4OTU1ZTc3YTQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRNZW51UHJveHlHdGsuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIHN0YXRpYyB2b2lkIGNvbnRleHRNZW51SXRlbUFjdGl2YXRlZENhbGxiYWNrKEd0
a0FjdGlvbiogYWN0aW9uLCBXZWJQYWdlUHJveHkqIHBhCiAgICAgcGFnZS0+Y29udGV4dE1lbnVJ
dGVtU2VsZWN0ZWQoaXRlbSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNvbnRleHRNZW51SXRlbVZpc2li
aWxpdHlDaGFuZ2VkKEd0a0FjdGlvbiogYWN0aW9uLCBHUGFyYW1TcGVjKiwgV2ViQ29udGV4dE1l
bnVQcm94eUd0ayogY29udGV4dE1lbnVQcm94eSkKK3N0YXRpYyB2b2lkIGNvbnRleHRNZW51SXRl
bVZpc2liaWxpdHlDaGFuZ2VkKEd0a0FjdGlvbiosIEdQYXJhbVNwZWMqLCBXZWJDb250ZXh0TWVu
dVByb3h5R3RrKiBjb250ZXh0TWVudVByb3h5KQogewogICAgIEd0a01lbnUqIG1lbnUgPSBjb250
ZXh0TWVudVByb3h5LT5ndGtNZW51KCk7CiAgICAgaWYgKCFtZW51KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcAppbmRleCA3
ODI3MzBkZTcwYmFmZDgzZjg0ODE5ZGYwZTY0N2RhZmI1M2NlN2NiLi5lNTAzN2I2M2Q4YWJiNzY2
MGQ0NGIzMmY3YWY3YzRiOGQ3ZTAyZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcApAQCAtNjMsNyArNjMsNyBAQCBH
dGtBY3Rpb24qIFdlYlBvcHVwTWVudVByb3h5R3RrOjpjcmVhdGVHdGtBY3Rpb25Gb3JNZW51SXRl
bShjb25zdCBXZWJQb3B1cEl0ZW0mCiAgICAgcmV0dXJuIGFjdGlvbjsKIH0KIAotdm9pZCBXZWJQ
b3B1cE1lbnVQcm94eUd0azo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0
RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZl
Y3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiBk
YXRhLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCit2b2lkIFdlYlBvcHVwTWVudVByb3h5R3RrOjpz
aG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24sIGRvdWJsZSAv
KiBwYWdlU2NhbGVGYWN0b3IgKi8sIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywg
Y29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KQogewog
ICAgIGlmIChtX3BvcHVwKQogICAgICAgICBtX3BvcHVwLT5jbGVhcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZy
YW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9XZWJLaXRGcmFtZS5jcHAKaW5kZXggMTY5MTU4N2FhMmNjYzE0MjYxY2JiZGQwOGY4MjgwZTYw
ODNkODkxMi4uNzQ3NWJmYjgzMGYzZWU2Mzk2M2VhNWU4MjNjMjgwYzRlMTE1ODdmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHN0cnVjdCBfV2Vi
S2l0RnJhbWVQcml2YXRlIHsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEZyYW1lLCB3ZWJr
aXRfZnJhbWUsIEdfVFlQRV9PQkpFQ1QpCiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9mcmFtZV9jbGFz
c19pbml0KFdlYktpdEZyYW1lQ2xhc3MqIGtsYXNzKQorc3RhdGljIHZvaWQgd2Via2l0X2ZyYW1l
X2NsYXNzX2luaXQoV2ViS2l0RnJhbWVDbGFzcyopCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRl
bnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAKaW5kZXggYThkYmI1NWRjMDNlNDA0ZDBmN2M3YTlk
MGJmMGU4NTFhZTcyNzgwZS4uOWM0ODJiOWVkYjM5MmMyZmZlZjFhMDYxYWZkN2VmOThjM2I2MGYw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAKQEAgLTgx
LDcgKzgxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViRXh0ZW5zaW9uUGFnZURlc3Ryb3koV2Vi
S2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIFdlYlBhZ2UKICAgICBleHRlbnNpb24tPnByaXYt
PnBhZ2VzLnJlbW92ZShwYWdlKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0V2ViRXh0ZW5zaW9u
RGlkUmVjZWl2ZU1lc3NhZ2UoV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIGNvbnN0IFN0
cmluZyYgbWVzc2FnZU5hbWUsIEltbXV0YWJsZURpY3Rpb25hcnkmIG1lc3NhZ2UpCitzdGF0aWMg
dm9pZCB3ZWJraXRXZWJFeHRlbnNpb25EaWRSZWNlaXZlTWVzc2FnZShXZWJLaXRXZWJFeHRlbnNp
b24qLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBJbW11dGFibGVEaWN0aW9uYXJ5JiBtZXNz
YWdlKQogewogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBTdHJpbmc6OmZyb21VVEY4KCJQcmVmZXRj
aEROUyIpKSB7CiAgICAgICAgIEFQSTo6U3RyaW5nKiBob3N0bmFtZSA9IHN0YXRpY19jYXN0PEFQ
STo6U3RyaW5nKj4obWVzc2FnZS5nZXQoU3RyaW5nOjpmcm9tVVRGOCgiSG9zdG5hbWUiKSkpOwpA
QCAtOTAsMjMgKzkwLDIzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYkV4dGVuc2lvbkRpZFJlY2Vp
dmVNZXNzYWdlKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBjCiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxl
UmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CitzdGF0aWMgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICB3ZWJraXRXZWJFeHRlbnNpb25Q
YWdlQ3JlYXRlZChXRUJLSVRfV0VCX0VYVEVOU0lPTihjbGllbnRJbmZvKSwgdG9JbXBsKHBhZ2Up
KTsKIH0KIAotc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwg
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9p
ZCB3aWxsRGVzdHJveVBhZ2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHdlYmtpdFdlYkV4dGVuc2lvblBhZ2VEZXN0cm95
KFdFQktJVF9XRUJfRVhURU5TSU9OKGNsaWVudEluZm8pLCB0b0ltcGwocGFnZSkpOwogfQogCi1z
dGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLU3RyaW5n
UmVmIG5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKFdLQnVuZGxlUmVmLCBXS1N0cmluZ1JlZiBu
YW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBl
SUQoKSk7CiAgICAgd2Via2l0V2ViRXh0ZW5zaW9uRGlkUmVjZWl2ZU1lc3NhZ2UoV0VCS0lUX1dF
Ql9FWFRFTlNJT04oY2xpZW50SW5mbyksIHRvSW1wbChuYW1lKS0+c3RyaW5nKCksICp0b0ltcGwo
c3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSkpKTsKIH0KIAotc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VUb1Bh
Z2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBuYW1lLCBX
S1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgQVNT
RVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7
CiAgICAgaWYgKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UgPSBXRUJLSVRfV0VCX0VYVEVOU0lPTihj
bGllbnRJbmZvKS0+cHJpdi0+cGFnZXMuZ2V0KHRvSW1wbChwYWdlKSkuZ2V0KCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKaW5kZXggZWE5OTU3NDNkYzljYjQ0YjQzMDlmZTQz
M2Y0ZjFjZmY5Nzk5NjI2ZS4uNDViN2UwYTU5ZGUwMThkMGM0M2MyYWMyY2VlMGEwYjg2NjU2ZjEx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMTE1LDcgKzExNSw3
IEBAIHN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyCiAgICAgd2Via2l0V2ViUGFnZVNldFVSSShXRUJL
SVRfV0VCX1BBR0UoY2xpZW50SW5mbyksIGdldFByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodG9JbXBs
KGZyYW1lKSkpOwogfQogCi1zdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFt
ZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
K3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVm
KiAvKiB1c2VyRGF0YSAqLywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdL
QnVuZGxlRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyMyw3
ICsxMjMsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcAogICAgIHdlYmtpdFdlYlBhZ2VTZXRV
UkkoV0VCS0lUX1dFQl9QQUdFKGNsaWVudEluZm8pLCBnZXRQcm92aXNpb25hbFVSTEZvckZyYW1l
KHRvSW1wbChmcmFtZSkpKTsKIH0KIAotc3RhdGljIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
LCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUsIFdLVHlwZVJlZiogdXNlckRhdGEs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
S1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBXS1R5cGVSZWYqIC8qIHVzZXJEYXRhICovLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIGlmICghV0tCdW5kbGVGcmFtZUlzTWFpbkZy
YW1lKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyB2
b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5k
bGVGcmFtZVJlZiBmcmFtCiAgICAgZ19zaWduYWxfZW1pdChXRUJLSVRfV0VCX1BBR0UoY2xpZW50
SW5mbyksIHNpZ25hbHNbRE9DVU1FTlRfTE9BREVEXSwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdp
bGxEZXN0cm95RnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKQorc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lGcmFtZShXS0J1
bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIC8qIGNsaWVu
dEluZm8gKi8pCiB7CiAgICAgd2ViRnJhbWVNYXAoKS5yZW1vdmUodG9JbXBsKGZyYW1lKSk7CiB9
CkBAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUKICAgICAgICAgd2Vi
a2l0U2NyaXB0V29ybGRXaW5kb3dPYmplY3RDbGVhcmVkKHdvcmxkLCBXRUJLSVRfV0VCX1BBR0Uo
Y2xpZW50SW5mbyksIHdlYmtpdEZyYW1lR2V0T3JDcmVhdGUodG9JbXBsKGZyYW1lKSkpOwogfQog
Ci1zdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxS
ZXF1ZXN0UmVmIHJlcXVlc3QsIGJvb2wgcGFnZUxvYWRJc1Byb3Zpc2lvbmFsLCBjb25zdCB2b2lk
KikKK3N0YXRpYyB2b2lkIGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VS
TFJlcXVlc3RSZWYgcmVxdWVzdCwgYm9vbCAvKiBwYWdlTG9hZElzUHJvdmlzaW9uYWwgKi8sIGNv
bnN0IHZvaWQqKQogewogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsK
ICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0
ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9ndGsvV2ViRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBhYWNkMWQ1NjYxNTRk
NjIwYzliMTRlYTM1YjNlNjllMWQ2ZTA2NjU4Li5kYWU5ZWZhOTVhOTJmYTRlZGRkNzUyNGNlNTE0
YzFiNWM0ZDQwNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2d0ay9XZWJFZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkVkaXRvckNsaWVudEd0ay5jcHAKQEAg
LTE0OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEdDbG9zdXJlKiBtX2Nsb3N1
cmU7CiAKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95T25DbG9zdXJlRmluYWxpemF0aW9uKGdwb2lu
dGVyIGRhdGEsIEdDbG9zdXJlKiBjbG9zdXJlKQorICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lPbkNs
b3N1cmVGaW5hbGl6YXRpb24oZ3BvaW50ZXIgZGF0YSwgR0Nsb3N1cmUqKQogICAgIHsKICAgICAg
ICAgLy8gQ2FsbGluZyBkZWxldGUgdm9pZCogd2lsbCBmcmVlIHRoZSBtZW1vcnkgYnV0IHdvbid0
IGludm9rZQogICAgICAgICAvLyB0aGUgZGVzdHJ1Y3Rvciwgc29tZXRoaW5nIHRoYXQgaXMgYSBt
dXN0IGZvciB1cy4KQEAgLTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgogCiBzdGF0aWMgRnJhbWUq
IGZyYW1lU2V0dGluZ0NsaXBib2FyZDsKIAotc3RhdGljIHZvaWQgY29sbGFwc2VTZWxlY3Rpb24o
R3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEZyYW1lKiBmcmFtZSkKK3N0YXRpYyB2b2lkIGNvbGxh
cHNlU2VsZWN0aW9uKEd0a0NsaXBib2FyZCosIEZyYW1lKiBmcmFtZSkKIHsKICAgICBpZiAoZnJh
bWVTZXR0aW5nQ2xpcGJvYXJkICYmIGZyYW1lU2V0dGluZ0NsaXBib2FyZCA9PSBmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRleCA1NmU2ODBjMzg5
NzgyYWZjYTJkMmYyNTUyNDVhNGUxMmI2NjUzYmZjLi43OTM1M2UzMDhhMzU2Y2Q0ZjViMGFiYWRl
YzU2MzVmM2ZhNjJjNmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcApAQCAtMzg1LDYg
KzM4NSw4IEBAIFBhc3NSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IFdlYlByaW50T3BlcmF0
aW9uR3RrOjpjcmVhdGUoV2ViUGFnZSogcGFnZSwgY29uCiAjZWxpZiBkZWZpbmVkKEdfT1NfV0lO
MzIpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQcmludE9wZXJhdGlvbkd0a1dpbjMyKHBh
Z2UsIHByaW50SW5mbykpOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5V
U0VEX1BBUkFNKHByaW50SW5mbyk7CiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>