<?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>79358</bug_id>
          
          <creation_ts>2012-02-23 04:13:28 -0800</creation_ts>
          <short_desc>Rename LocalStorageThread to StorageThread and LocalStorageTask to StorageTask.</short_desc>
          <delta_ts>2012-02-24 00:38:33 -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>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>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jorlow</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>563025</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-23 04:13:28 -0800</bug_when>
    <thetext>Revision 45124 commented FIXME to rename these classes.
https://bugs.webkit.org/show_bug.cgi?id=26658</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563027</commentid>
    <comment_count>1</comment_count>
      <attachid>128456</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-23 04:15:34 -0800</bug_when>
    <thetext>Created attachment 128456
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563669</commentid>
    <comment_count>2</comment_count>
      <attachid>128596</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-02-23 16:33:08 -0800</bug_when>
    <thetext>Created attachment 128596
patch v.2

I know how to amend Webcore.order now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564047</commentid>
    <comment_count>3</comment_count>
      <attachid>128596</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 00:38:28 -0800</bug_when>
    <thetext>Comment on attachment 128596
patch v.2

Clearing flags on attachment: 128596

Committed r108746: &lt;http://trac.webkit.org/changeset/108746&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564048</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 00:38:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128456</attachid>
            <date>2012-02-23 04:15:34 -0800</date>
            <delta_ts>2012-02-23 16:33:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-Rename-LocalStorageThread-to-StorageThread-and-Local.patch</filename>
            <type>text/plain</type>
            <size>67154</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSBjNWZmOGNkNTkzYjU4ODNkMTE1MDU2ZTE0MTVmYzdkZmZhYTEyZmFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IFRodSwgMjMgRmViIDIwMTIgMjE6MDA6MTAgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBSZW5hbWUgTG9jYWxTdG9yYWdlVGhyZWFkIHRvIFN0b3JhZ2VUaHJlYWQgYW5kCiBMb2NhbFN0
b3JhZ2VUYXNrIHRvIFN0b3JhZ2VUYXNrLgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc5MzU4CgpSZXZpc2lvbiA0NTEyNCBjb21tZW50ZWQgRklYTUUgdG8gcmVuYW1l
IHRoZXNlIGNsYXNzZXMuCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgODAgKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIFNvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICst
CiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MzggKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
ICAgICAgIHwgICAgOCArLQogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgfCAgIDMyICsrKy0tLQogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0
b3JhZ2VUYXNrLmNwcCAgICAgICAgfCAgMTA4IC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaCAgICAgICAgICB8ICAgNzMgLS0tLS0t
LS0tLS0tLQogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwICAg
ICAgfCAgIDk4IC0tLS0tLS0tLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2Nh
bFN0b3JhZ2VUaHJlYWQuaCAgICAgICAgfCAgIDY3IC0tLS0tLS0tLS0tLQogU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwICAgICAgfCAgIDEyICstCiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oICAgICAgICB8ICAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2suY3BwICAgICAgICAgICAgIHwgIDEwOCAr
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGFzay5o
ICAgICAgICAgICAgICAgfCAgIDcyICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZVRocmVhZC5jcHAgICAgICAgICAgIHwgICA5OCArKysrKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oICAgICAgICAgICAgIHwgICA2
NiArKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3Bw
ICAgICAgICAgIHwgICAxNiArKy0tCiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFj
a2VyLmggICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9zdG9yYWdlL3dpbmNlL0xvY2FsU3RvcmFn
ZVRocmVhZFdpbkNFLmNwcCAgICAgIHwgICA4MyAtLS0tLS0tLS0tLS0tLS0KIC4uLi9zdG9yYWdl
L3dpbmNlL0xvY2FsU3RvcmFnZVRocmVhZFdpbkNFLmggICAgICAgIHwgICA1OCAtLS0tLS0tLS0t
LQogLi4uL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFkV2luQ0UuY3BwICAgfCAg
IDgzICsrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdl
VGhyZWFkV2luQ0UuaCAgfCAgIDU4ICsrKysrKysrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCA2Mzkg
aW5zZXJ0aW9ucygrKSwgNTYxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaAogZGVsZXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFkLmNwcAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFk
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUYXNr
LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRh
c2suaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRo
cmVhZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VUaHJlYWQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uvd2lu
Y2UvTG9jYWxTdG9yYWdlVGhyZWFkV2luQ0UuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFkV2lu
Q0UuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9T
dG9yYWdlVGhyZWFkV2luQ0UuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjY0YjgzNC4uY2Y3
MTdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0MDEsOCArMTQwMSw4IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL0lEQkZhY3RvcnkuY3BwCiAgICAgc3RvcmFnZS9JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5k
SW1wbC5jcHAKLSAgICBzdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suY3BwCi0gICAgc3RvcmFnZS9M
b2NhbFN0b3JhZ2VUaHJlYWQuY3BwCisgICAgc3RvcmFnZS9TdG9yYWdlVGFzay5jcHAKKyAgICBz
dG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCiAgICAgc3RvcmFnZS9PcmlnaW5RdW90YU1hbmFnZXIu
Y3BwCiAgICAgc3RvcmFnZS9PcmlnaW5Vc2FnZVJlY29yZC5jcHAKICAgICBzdG9yYWdlL1NRTEV4
Y2VwdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NTIzYzYwLi42OGE4M2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsODMgQEAKKzIwMTItMDItMjMgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29t
cGFueTEwMC5uZXQ+CisKKyAgICAgICAgUmVuYW1lIExvY2FsU3RvcmFnZVRocmVhZCB0byBTdG9y
YWdlVGhyZWFkIGFuZCBMb2NhbFN0b3JhZ2VUYXNrIHRvIFN0b3JhZ2VUYXNrLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzNTgKKworICAgICAgICBS
ZXZpc2lvbiA0NTEyNCBjb21tZW50ZWQgRklYTUUgdG8gcmVuYW1lIHRoZXNlIGNsYXNzZXMuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHN0b3JhZ2UvTG9jYWxT
dG9yYWdlVGFzay5oOiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdlcjo6U3RvcmFnZVN5
bmNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdlcjo6c2NoZWR1
bGVJbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVN5bmNNYW5hZ2VyOjpzY2hlZHVs
ZVN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVN5bmNNYW5hZ2VyOjpzY2hlZHVsZURl
bGV0ZUVtcHR5RGF0YWJhc2UpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0b3JhZ2VTeW5jTWFuYWdlcik6Cisg
ICAgICAgICogc3RvcmFnZS9TdG9yYWdlVGFzay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suY3BwLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGFzazo6U3RvcmFnZVRhc2spOgorICAgICAgICAoV2Vi
Q29yZTo6U3RvcmFnZVRhc2s6On5TdG9yYWdlVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlVGFzazo6cGVyZm9ybVRhc2spOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRhc2suaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0b3JhZ2VUYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUYXNrOjpjcmVhdGVJbXBvcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRhc2s6OmNyZWF0ZVN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRh
c2s6OmNyZWF0ZURlbGV0ZUVtcHR5RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRhc2s6OmNyZWF0ZU9yaWdpbklkZW50aWZpZXJzSW1wb3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUYXNrOjpjcmVhdGVTZXRPcmlnaW5EZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUYXNrOjpjcmVhdGVEZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRhc2s6OmNyZWF0ZURlbGV0ZUFsbE9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRhc2s6OmNyZWF0ZVRlcm1pbmF0ZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlVGhy
ZWFkLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdl
VGhyZWFkLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRocmVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OlN0b3Jh
Z2VUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6flN0b3JhZ2VUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6c2NoZWR1bGVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhy
ZWFkOjpwZXJmb3JtVGVybWluYXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQu
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFk
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0b3JhZ2VUaHJlYWQpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRyYWNrZXI6OlN0b3JhZ2VUcmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjppbXBvcnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
VHJhY2tlcjo6c2V0T3JpZ2luRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJh
Y2tlcjo6c2NoZWR1bGVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpk
ZWxldGVBbGxPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxl
dGVPcmlnaW4pOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoU3RvcmFnZVRyYWNrZXIpOgorICAgICAgICAqIHN0b3JhZ2Uv
d2luY2UvU3RvcmFnZVRocmVhZFdpbkNFLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2Uvd2luY2UvTG9jYWxTdG9yYWdlVGhyZWFkV2luQ0UuY3BwLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpTdG9yYWdlVGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6On5TdG9yYWdlVGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUaHJlYWQ6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVh
ZDo6c2NoZWR1bGVJbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6c2No
ZWR1bGVTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpwZXJmb3JtVGVybWluYXRlKToKKyAg
ICAgICAgKiBzdG9yYWdlL3dpbmNlL1N0b3JhZ2VUaHJlYWRXaW5DRS5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5oLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTdG9yYWdlVGhyZWFkKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OmNyZWF0ZSk6CisKIDIwMTItMDItMjIgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1JlZmFjdG9yaW5nXSBBbGlnbiBz
dXBwbGVtZW50TmFtZSgpIHZhbHVlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDk3NGRhMWUuLmY5MzQ3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzg5
NiwxMCArMzg5NiwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCVHJhbnNhY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJWZXJz
aW9uQ2hhbmdlRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJWZXJzaW9uQ2hh
bmdlUmVxdWVzdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2su
Y3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaCBcCi0JU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIFwKLQlTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRocmVhZC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VUYXNrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGFz
ay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaCBcCiAJU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9PcmlnaW5RdW90YU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL09y
aWdpblF1b3RhTWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL09yaWdpblVzYWdl
UmVjb3JkLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA5Y2NlMDM1Li40ZDUyOTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKQEAgLTEzMDEsOCArMTMwMSw4IEBAIFNPVVJDRVMgKz0gXAogICAgIHN0b3JhZ2UvRGF0YWJh
c2UuY3BwIFwKICAgICBzdG9yYWdlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAgXAogICAgIHN0b3Jh
Z2UvRGF0YWJhc2VTeW5jLmNwcCBcCi0gICAgc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmNwcCBc
Ci0gICAgc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIFwKKyAgICBzdG9yYWdlL1N0b3Jh
Z2VUYXNrLmNwcCBcCisgICAgc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcCBcCiAgICAgc3RvcmFn
ZS9TdG9yYWdlLmNwcCBcCiAgICAgc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwIFwKICAgICBz
dG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAgXApAQCAtMjUyMCw4ICsyNTIwLDggQEAgSEVBREVS
UyArPSBcCiAgICAgc3RvcmFnZS9EYXRhYmFzZVRhc2suaCBcCiAgICAgc3RvcmFnZS9EYXRhYmFz
ZVRocmVhZC5oIFwKICAgICBzdG9yYWdlL0RhdGFiYXNlVHJhY2tlci5oIFwKLSAgICBzdG9yYWdl
L0xvY2FsU3RvcmFnZVRhc2suaCBcCi0gICAgc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuaCBc
CisgICAgc3RvcmFnZS9TdG9yYWdlVGFzay5oIFwKKyAgICBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQu
aCBcCiAgICAgc3RvcmFnZS9PcmlnaW5RdW90YU1hbmFnZXIuaCBcCiAgICAgc3RvcmFnZS9Pcmln
aW5Vc2FnZVJlY29yZC5oIFwKICAgICBzdG9yYWdlL1NRTENhbGxiYWNrV3JhcHBlci5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBmZGM2MGU0Li5iMzY5MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00
Njc5LDEwICs0Njc5LDEwIEBACiAgICAgICAgICAgICAnc3RvcmFnZS9JREJWZXJzaW9uQ2hhbmdl
RXZlbnQuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5j
cHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCcsCi0g
ICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmNwcCcsCi0gICAgICAgICAgICAn
c3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmgnLAotICAgICAgICAgICAgJ3N0b3JhZ2UvTG9jYWxT
dG9yYWdlVGhyZWFkLmNwcCcsCi0gICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJl
YWQuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlVGFzay5jcHAnLAorICAgICAgICAg
ICAgJ3N0b3JhZ2UvU3RvcmFnZVRhc2suaCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdl
VGhyZWFkLmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmgnLAogICAg
ICAgICAgICAgJ3N0b3JhZ2UvT3JpZ2luUXVvdGFNYW5hZ2VyLmNwcCcsCiAgICAgICAgICAgICAn
c3RvcmFnZS9PcmlnaW5RdW90YU1hbmFnZXIuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9Pcmln
aW5Vc2FnZVJlY29yZC5jcHAnLApAQCAtNDczNyw4ICs0NzM3LDggQEAKICAgICAgICAgICAgICdz
dG9yYWdlL2Nocm9taXVtL1NRTFRyYW5zYWN0aW9uQ2xpZW50Q2hyb21pdW0uY3BwJywKICAgICAg
ICAgICAgICdzdG9yYWdlL3dpbmNlL0RhdGFiYXNlVGhyZWFkV2luQ0UuY3BwJywKICAgICAgICAg
ICAgICdzdG9yYWdlL3dpbmNlL0RhdGFiYXNlVGhyZWFkV2luQ0UuaCcsCi0gICAgICAgICAgICAn
c3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5jcHAnLAotICAgICAgICAgICAg
J3N0b3JhZ2Uvd2luY2UvTG9jYWxTdG9yYWdlVGhyZWFkV2luQ0UuaCcsCisgICAgICAgICAgICAn
c3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFkV2luQ0UuY3BwJywKKyAgICAgICAgICAgICdzdG9y
YWdlL3dpbmNlL1N0b3JhZ2VUaHJlYWRXaW5DRS5oJywKICAgICAgICAgICAgICd3ZWJhdWRpby9B
dWRpb0Jhc2ljUHJvY2Vzc29yTm9kZS5jcHAnLAogICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlv
QmFzaWNQcm9jZXNzb3JOb2RlLmgnLAogICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCBkZGJhMWVjLi5lY2FlNTQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIKQEAgLTQ0NSwyMyArNDQ1LDIzIEBAIF9fWk43V2ViQ29yZTE2U1FMaXRlRmlsZVN5
c3RlbTI0ZW5zdXJlRGF0YWJhc2VGaWxlRXhpc3RzRVJLTjNXVEY2U3RyaW5nRWIKIF9fWk43V2Vi
Q29yZTE1RGF0YWJhc2VUcmFja2VyN3RyYWNrZXJFdgogX19aTjdXZWJDb3JlMTVEYXRhYmFzZVRy
YWNrZXI5c2V0Q2xpZW50RVBOU18yMURhdGFiYXNlVHJhY2tlckNsaWVudEUKIF9fWk43V2ViQ29y
ZTE0U3RvcmFnZVRyYWNrZXIxN2luaXRpYWxpemVUcmFja2VyRVJLTjNXVEY2U3RyaW5nRQotX19a
TjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJlYWQ2Y3JlYXRlRXYKK19fWk43V2ViQ29yZTE4U3Rv
cmFnZVRocmVhZDZjcmVhdGVFdgogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjIzc2V0U3Rv
cmFnZURpcmVjdG9yeVBhdGhFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxOExvY2FsU3Rv
cmFnZVRocmVhZDVzdGFydEV2CitfX1pON1dlYkNvcmUxOFN0b3JhZ2VUaHJlYWQ1c3RhcnRFdgog
X19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjIzaW1wb3J0T3JpZ2luSWRlbnRpZmllcnNFdgot
X19aTjdXZWJDb3JlMTZMb2NhbFN0b3JhZ2VUYXNrQzFFTlMwXzRUeXBlRQotX19aTjdXZWJDb3Jl
MThMb2NhbFN0b3JhZ2VUaHJlYWQxMnNjaGVkdWxlVGFza0VOM1dURjEwUGFzc093blB0cklOU18x
NkxvY2FsU3RvcmFnZVRhc2tFRUUKLV9fWk4zV1RGNURlcXVlSVBON1dlYkNvcmUxNkxvY2FsU3Rv
cmFnZVRhc2tFTG0wRUUxNGV4cGFuZENhcGFjaXR5RXYKK19fWk43V2ViQ29yZTE2U3RvcmFnZVRh
c2tDMUVOUzBfNFR5cGVFCitfX1pON1dlYkNvcmUxOFN0b3JhZ2VUaHJlYWQxMnNjaGVkdWxlVGFz
a0VOM1dURjEwUGFzc093blB0cklOU18xNlN0b3JhZ2VUYXNrRUVFCitfX1pOM1dURjVEZXF1ZUlQ
TjdXZWJDb3JlMTZTdG9yYWdlVGFza0VMbTBFRTE0ZXhwYW5kQ2FwYWNpdHlFdgogX19aTjdXZWJD
b3JlMTRTdG9yYWdlVHJhY2tlcjd0cmFja2VyRXYKIF9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNr
ZXI5c2V0Q2xpZW50RVBOU18yMFN0b3JhZ2VUcmFja2VyQ2xpZW50RQogX19aTjdXZWJDb3JlMTJj
YWNoZVN0b3JhZ2VFdgotX19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJlYWQyNHRocmVhZEVu
dHJ5UG9pbnRDYWxsYmFja0VQdgorX19aTjdXZWJDb3JlMThTdG9yYWdlVGhyZWFkMjR0aHJlYWRF
bnRyeVBvaW50Q2FsbGJhY2tFUHYKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UxN3NldENhY2hlRGlyZWN0b3J5RVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMThMb2Nh
bFN0b3JhZ2VUaHJlYWQxNnRocmVhZEVudHJ5UG9pbnRFdgotX19aTjNXVEYxMk1lc3NhZ2VRdWV1
ZUlON1dlYkNvcmUxNkxvY2FsU3RvcmFnZVRhc2tFRTE0d2FpdEZvck1lc3NhZ2VFdgotX19aTjNX
VEYxMk1lc3NhZ2VRdWV1ZUlON1dlYkNvcmUxNkxvY2FsU3RvcmFnZVRhc2tFRTE5YWx3YXlzVHJ1
ZVByZWRpY2F0ZUVQUzJfCitfX1pON1dlYkNvcmUxOFN0b3JhZ2VUaHJlYWQxNnRocmVhZEVudHJ5
UG9pbnRFdgorX19aTjNXVEYxMk1lc3NhZ2VRdWV1ZUlON1dlYkNvcmUxNlN0b3JhZ2VUYXNrRUUx
NHdhaXRGb3JNZXNzYWdlRXYKK19fWk4zV1RGMTJNZXNzYWdlUXVldWVJTjdXZWJDb3JlMTZTdG9y
YWdlVGFza0VFMTlhbHdheXNUcnVlUHJlZGljYXRlRVBTMl8KIF9fWk43V2ViQ29yZTIxc2V0UGxh
dGZvcm1TdHJhdGVnaWVzRVBOU18xOFBsYXRmb3JtU3RyYXRlZ2llc0UKLV9fWk43V2ViQ29yZTE2
TG9jYWxTdG9yYWdlVGFzazExcGVyZm9ybVRhc2tFdgorX19aTjdXZWJDb3JlMTZTdG9yYWdlVGFz
azExcGVyZm9ybVRhc2tFdgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXREZWZhdWx0TWluRE9N
VGltZXJJbnRlcnZhbEVkCiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMjdzeW5jSW1wb3J0
T3JpZ2luSWRlbnRpZmllcnNFdgogX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgpA
QCAtNDcxLDcgKzQ3MSw3IEBAIF9fWk43V2ViQ29yZTEzbGlzdERpcmVjdG9yeUVSS04zV1RGNlN0
cmluZ0VTM18KIF9fWk43V2ViQ29yZTRQYWdlQzFFUk5TMF8xMVBhZ2VDbGllbnRzRQogX19aTjNX
VEY2VmVjdG9ySU5TXzZTdHJpbmdFTG0wRUVhU0VSS1MyXwogX19aTjdXZWJDb3JlNFBhZ2VDMkVS
TlMwXzExUGFnZUNsaWVudHNFCi1fX1pON1dlYkNvcmUxNkxvY2FsU3RvcmFnZVRhc2tEMUV2Citf
X1pON1dlYkNvcmUxNlN0b3JhZ2VUYXNrRDFFdgogX19aTjdXZWJDb3JlNkNocm9tZUMxRVBOU180
UGFnZUVQTlNfMTJDaHJvbWVDbGllbnRFCiBfX1pON1dlYkNvcmUxOURyYWdDYXJldENvbnRyb2xs
ZXJDMUV2CiBfX1pON1dlYkNvcmUxNERyYWdDb250cm9sbGVyQzFFUE5TXzRQYWdlRVBOU18xMERy
YWdDbGllbnRFCkBAIC0xOTk4NCw3ICsxOTk4NCw3IEBAIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5
T3JpZ2luMThkYXRhYmFzZUlkZW50aWZpZXJFdgogX19aTjdXZWJDb3JlMTdlbmNvZGVGb3JGaWxl
TmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1U3RvcmFnZUFyZWFTeW5jNmNyZWF0
ZUVOM1dURjEwUGFzc1JlZlB0cklOU18xOFN0b3JhZ2VTeW5jTWFuYWdlckVFRU5TMl9JTlNfMTVT
dG9yYWdlQXJlYUltcGxFRUVSS05TMV82U3RyaW5nRQogX19aTjdXZWJDb3JlMThTdG9yYWdlU3lu
Y01hbmFnZXIxNHNjaGVkdWxlSW1wb3J0RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE1U3RvcmFnZUFy
ZWFTeW5jRUVFCi1fX1pON1dlYkNvcmUxNkxvY2FsU3RvcmFnZVRhc2tDMUVOUzBfNFR5cGVFUE5T
XzE1U3RvcmFnZUFyZWFTeW5jRQorX19aTjdXZWJDb3JlMTZTdG9yYWdlVGFza0MxRU5TMF80VHlw
ZUVQTlNfMTVTdG9yYWdlQXJlYVN5bmNFCiBfX1pON1dlYkNvcmUxNVN0b3JhZ2VBcmVhU3luYzEz
cGVyZm9ybUltcG9ydEV2CiBfX1pON1dlYkNvcmUxNVN0b3JhZ2VBcmVhU3luYzEyb3BlbkRhdGFi
YXNlRU5TMF8yMU9wZW5EYXRhYmFzZVBhcmFtVHlwZUUKIF9fWk43V2ViQ29yZTE4U3RvcmFnZVN5
bmNNYW5hZ2VyMjBmdWxsRGF0YWJhc2VGaWxlbmFtZUVSS04zV1RGNlN0cmluZ0UKQEAgLTI1ODMx
LDcgKzI1ODMxLDcgQEAgX19aTjdXZWJDb3JlMTVTdG9yYWdlQXJlYVN5bmMxMXBlcmZvcm1TeW5j
RXYKIF9fWk43V2ViQ29yZTE1U3RvcmFnZUFyZWFTeW5jNHN5bmNFYlJLTjNXVEY3SGFzaE1hcElO
UzFfNlN0cmluZ0VTM19OUzFfMTBTdHJpbmdIYXNoRU5TMV8xMEhhc2hUcmFpdHNJUzNfRUVTNl9F
RQogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjIwY2FuY2VsRGVsZXRpbmdPcmlnaW5FUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMTZzZXRPcmlnaW5EZXRh
aWxzRVJLTjNXVEY2U3RyaW5nRVM0XwotX19aTjdXZWJDb3JlMTZMb2NhbFN0b3JhZ2VUYXNrQzFF
TlMwXzRUeXBlRVJLTjNXVEY2U3RyaW5nRVM1XworX19aTjdXZWJDb3JlMTZTdG9yYWdlVGFza0Mx
RU5TMF80VHlwZUVSS04zV1RGNlN0cmluZ0VTNV8KIF9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNr
ZXIxMnNjaGVkdWxlVGFza0VQdgogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjIwc3luY1Nl
dE9yaWdpbkRldGFpbHNFUktOM1dURjZTdHJpbmdFUzRfCiBfX1pON1dlYkNvcmUyNnNldEpTRE9N
V2luZG93T25oYXNoY2hhbmdlRVBOM0pTQzlFeGVjU3RhdGVFUE5TMF84SlNPYmplY3RFTlMwXzdK
U1ZhbHVlRQpAQCAtMjc0MTksMTIgKzI3NDE5LDEyIEBAIF9fWk43V2ViQ29yZTE1U3RvcmFnZUFy
ZWFJbXBsNWNsb3NlRXYKIF9fWk43V2ViQ29yZTE1U3RvcmFnZUFyZWFTeW5jMTdzY2hlZHVsZUZp
bmFsU3luY0V2CiBfX1pON1dlYkNvcmUxOFN0b3JhZ2VTeW5jTWFuYWdlcjI3c2NoZWR1bGVEZWxl
dGVFbXB0eURhdGFiYXNlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzE1U3RvcmFnZUFyZWFTeW5jRUVF
CiBfX1pON1dlYkNvcmUxOFN0b3JhZ2VTeW5jTWFuYWdlcjVjbG9zZUV2Ci1fX1pON1dlYkNvcmUx
OExvY2FsU3RvcmFnZVRocmVhZDl0ZXJtaW5hdGVFdgotX19aTjdXZWJDb3JlMTZMb2NhbFN0b3Jh
Z2VUYXNrQzFFTlMwXzRUeXBlRVBOU18xOExvY2FsU3RvcmFnZVRocmVhZEUKK19fWk43V2ViQ29y
ZTE4U3RvcmFnZVRocmVhZDl0ZXJtaW5hdGVFdgorX19aTjdXZWJDb3JlMTZTdG9yYWdlVGFza0Mx
RU5TMF80VHlwZUVQTlNfMThTdG9yYWdlVGhyZWFkRQogX19aTjdXZWJDb3JlMTVTdG9yYWdlQXJl
YVN5bmMxOWRlbGV0ZUVtcHR5RGF0YWJhc2VFdgotX19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VU
aHJlYWQxNnBlcmZvcm1UZXJtaW5hdGVFdgotX19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJl
YWREMUV2Ci1fX1pOM1dURjEyTWVzc2FnZVF1ZXVlSU43V2ViQ29yZTE2TG9jYWxTdG9yYWdlVGFz
a0VFRDFFdgorX19aTjdXZWJDb3JlMThTdG9yYWdlVGhyZWFkMTZwZXJmb3JtVGVybWluYXRlRXYK
K19fWk43V2ViQ29yZTE4U3RvcmFnZVRocmVhZEQxRXYKK19fWk4zV1RGMTJNZXNzYWdlUXVldWVJ
TjdXZWJDb3JlMTZTdG9yYWdlVGFza0VFRDFFdgogX19aTjdXZWJDb3JlMjhJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsRDJFdgogX19aTjdXZWJDb3JlMjFJbnNwZWN0b3JGcm9udGVuZEhvc3Qx
NmRpc2Nvbm5lY3RDbGllbnRFdgogX19aTjdXZWJDb3JlMjNKU0luc3BlY3RvckZyb250ZW5kSG9z
dEQxRXYKQEAgLTI4NjgyLDcgKzI4NjgyLDcgQEAgX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tl
cjEyZGVsZXRlT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQogX19aTjdXZWJDb3JlOVBhZ2VH
cm91cDI2Y2xlYXJMb2NhbFN0b3JhZ2VGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBf
X1pON1dlYkNvcmUyMFN0b3JhZ2VOYW1lc3BhY2VJbXBsMjJjbGVhck9yaWdpbkZvckRlbGV0aW9u
RVBOU18xNFNlY3VyaXR5T3JpZ2luRQogX19aTkszV1RGN0hhc2hNYXBJTlNfNlJlZlB0cklON1dl
YkNvcmUxNFNlY3VyaXR5T3JpZ2luRUVFTlMxX0lOUzJfMTVTdG9yYWdlQXJlYUltcGxFRUVOUzJf
MThTZWN1cml0eU9yaWdpbkhhc2hFTlNfMTBIYXNoVHJhaXRzSVM0X0VFTlM4X0lTNl9FRUUzZ2V0
RVBTM18KLV9fWk43V2ViQ29yZTE2TG9jYWxTdG9yYWdlVGFza0MxRU5TMF80VHlwZUVSS04zV1RG
NlN0cmluZ0UKK19fWk43V2ViQ29yZTE2U3RvcmFnZVRhc2tDMUVOUzBfNFR5cGVFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMTZzeW5jRGVsZXRlT3JpZ2luRVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjIxZGF0YWJhc2VQYXRo
Rm9yT3JpZ2luRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjE4
ZGlza1VzYWdlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxZTdjNmYwLi5iZTQwYmEzIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzA5
MjYsMTkgKzcwOTI2LDE5IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxTdG9yYWdlVGFzay5jcHAiCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VUYXNrLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxMb2NhbFN0b3JhZ2VUYXNrLmgiCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VUYXNrLmgiCiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxTdG9yYWdl
VGhyZWFkLmNwcCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZVRocmVhZC5j
cHAiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0
b3JhZ2VcTG9jYWxTdG9yYWdlVGhyZWFkLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdl
XFN0b3JhZ2VUaHJlYWQuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhMzEz
MjcuLmE5OTAwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE0NzMsMTAgKzE0NzMsMTAgQEAKIAkJNTExMjI0NzgxMENGQjhG
NDAwODA5OUQ3IC8qIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTIyNDc3MTBDRkI4RjQw
MDgwOTlENyAvKiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJ
CTUxMTIyNDdBMTBDRkI4RkYwMDgwOTlENyAvKiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEx
MjI0NzkxMENGQjhGRjAwODA5OUQ3IC8qIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmggKi87IH07CiAJCTUxMTZEOTc3MENGMTc3QkQwMEMyQjg0RCAvKiBEYXRhYmFzZURldGFpbHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTZEOTc1
MENGMTc3QkQwMEMyQjg0RCAvKiBEYXRhYmFzZURldGFpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTFGMjMxNzBEQzE2MERBMDA0RjAwMzIg
LyogTG9jYWxTdG9yYWdlVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTFGMjMxMzBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFz
ay5jcHAgKi87IH07Ci0JCTUxMUYyMzE4MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VU
YXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFG
MjMxNDBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oICovOyB9OwotCQk1MTFG
MjMxOTBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUYyMzE1MERDMTYwREEwMDRG
MDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwICovOyB9OwotCQk1MTFGMjMxQTBEQzE2MERB
MDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxNjBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxT
dG9yYWdlVGhyZWFkLmggKi87IH07CisJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBTdG9y
YWdlVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTFGMjMxMzBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suY3BwICovOyB9OworCQk1
MTFGMjMxODBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAv
KiBTdG9yYWdlVGFzay5oICovOyB9OworCQk1MTFGMjMxOTBEQzE2MERBMDA0RjAwMzIgLyogU3Rv
cmFnZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTFGMjMxNTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5jcHAgKi87IH07
CisJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxNjBEQzE2MERBMDA0
RjAwMzIgLyogU3RvcmFnZVRocmVhZC5oICovOyB9OwogCQk1MTI2RTZCQjBBMkUzQjEyMDA1QzI5
RkEgLyogSWNvbkRhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMjZFNkI5MEEyRTNCMTIwMDVDMjlGQSAvKiBJY29uRGF0YWJhc2UuY3Bw
ICovOyB9OwogCQk1MTI2RTZCQzBBMkUzQjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI2RTZCQTBBMkUz
QjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEyREQ4RTMwRDkxRTJCNDAwMEY4OUVFIC8qIFNoYXJl
ZEJ1ZmZlckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMkREOEUyMEQ5MUUyQjQwMDBGODlFRSAvKiBTaGFyZWRCdWZmZXJDRi5jcHAgKi87IH07
CkBAIC04MzQzLDEwICs4MzQzLDEwIEBACiAJCTUxMTIyNDc3MTBDRkI4RjQwMDgwOTlENyAvKiBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTIyNDc5MTBDRkI4RkYwMDgwOTlENyAvKiBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTE2RDk3NTBDRjE3N0JEMDBDMkI4NEQgLyogRGF0YWJhc2VE
ZXRhaWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlRGV0YWls
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTFGMjMxMzBEQzE2MERBMDA0RjAw
MzIgLyogTG9jYWxTdG9yYWdlVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2NhbFN0b3JhZ2VUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTExRjIzMTQwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlVGFzay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MTFGMjMxNTBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9y
YWdlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2Fs
U3RvcmFnZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMUYyMzE2
MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9yYWdlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxMUYyMzEzMERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlVGFzay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBT
dG9yYWdlVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlVGFz
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTFGMjMxNTBEQzE2MERBMDA0RjAw
MzIgLyogU3RvcmFnZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTdG9yYWdlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEx
RjIzMTYwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTI2RTZCOTBBMkUzQjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJY29uRGF0YWJhc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI2RTZCQTBBMkUzQjEyMDA1QzI5RkEgLyogSWNv
bkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJY29uRGF0YWJh
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyREQ4RTIwRDkxRTJCNDAwMEY4
OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNoYXJlZEJ1ZmZlckNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzOTU2LDEwICsxMzk1NiwxMCBAQAogCQkJCUI2NTY2MjY4MTIwQjExNUEwMDZFQTg1QyAvKiBJ
REJUcmFuc2FjdGlvbi5oICovLAogCQkJCUI2NTY2MjY5MTIwQjExNUEwMDZFQTg1QyAvKiBJREJU
cmFuc2FjdGlvbi5pZGwgKi8sCiAJCQkJQjY1NjYyNkQxMjBCMTE2QjAwNkVBODVDIC8qIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oICovLAotCQkJCTUxMUYyMzEzMERDMTYwREEwMDRG
MDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCAqLywKLQkJCQk1MTFGMjMxNDBEQzE2MERBMDA0
RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oICovLAotCQkJCTUxMUYyMzE1MERDMTYwREEwMDRG
MDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwICovLAotCQkJCTUxMUYyMzE2MERDMTYwREEw
MDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuaCAqLywKKwkJCQk1MTFGMjMxMzBEQzE2MERB
MDA0RjAwMzIgLyogU3RvcmFnZVRhc2suY3BwICovLAorCQkJCTUxMUYyMzE0MERDMTYwREEwMDRG
MDAzMiAvKiBTdG9yYWdlVGFzay5oICovLAorCQkJCTUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAv
KiBTdG9yYWdlVGhyZWFkLmNwcCAqLywKKwkJCQk1MTFGMjMxNjBEQzE2MERBMDA0RjAwMzIgLyog
U3RvcmFnZVRocmVhZC5oICovLAogCQkJCTUxQTkyNjc4MEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmln
aW5RdW90YU1hbmFnZXIuY3BwICovLAogCQkJCTUxQTkyNjc5MEQ1M0YwNTcwMDYzRUNDMiAvKiBP
cmlnaW5RdW90YU1hbmFnZXIuaCAqLywKIAkJCQk1MUE5MjY3QTBENTNGMDU3MDA2M0VDQzIgLyog
T3JpZ2luVXNhZ2VSZWNvcmQuY3BwICovLApAQCAtMjMyNDgsOCArMjMyNDgsOCBAQAogCQkJCUE1
NzMyQjBEMTM2QTE2QzQwMDVDOEQ3QyAvKiBMb2NhbGl6ZWREYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNTE0MkM2OTEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5n
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTExRjIzMTgwREMxNjBEQTAwNEYwMDMyIC8qIExvY2Fs
U3RvcmFnZVRhc2suaCBpbiBIZWFkZXJzICovLAotCQkJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAz
MiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMUYyMzE4MERD
MTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExRjIz
MUEwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MDM5MTJCMDI2NzYwMEMxQTM1OSAvKiBMb3dQYXNzMkZpbHRlck5vZGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY0MTMsOCArMjY0MTMsOCBAQAogCQkJCUY1Q0M0MkRDMTJGODAxQ0Ew
MEQ1RjdFMyAvKiBMb2NhbGl6ZWROdW1iZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDQ2
RTFBQzEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxpemVkU3RyaW5ncy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzI1QjUyQTEzMUM2RDM5MDAxODBFMTAgLyogTG9jYWxpemVkU3RyaW5nc01hYy5t
bSBpbiBTb3VyY2VzICovLAotCQkJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0
b3JhZ2VUYXNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAz
MiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTExRjIzMTcw
REMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUYXNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUx
MUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRTFDNDFDMEQ5ODI5ODEwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBODIzOUUwMDA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNDAyNjQ1RTBBRkRDMTlCMDA1OTE5RTIgLyogTG9nZ2luZ01hYy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0
b3JhZ2VUYXNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YjE2YjQuLjAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxvY2FsU3RvcmFnZVRhc2su
aCIKLQotI2luY2x1ZGUgIkxvY2FsU3RvcmFnZVRocmVhZC5oIgotI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhU3luYy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VUcmFja2VyLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotTG9jYWxTdG9yYWdlVGFzazo6TG9jYWxTdG9yYWdlVGFzayhUeXBlIHR5cGUsIFN0
b3JhZ2VBcmVhU3luYyogYXJlYSkKLSAgICA6IG1fdHlwZSh0eXBlKQotICAgICwgbV9hcmVhKGFy
ZWEpCi0gICAgLCBtX3RocmVhZCgwKQotewotICAgIEFTU0VSVChtX2FyZWEpOwotICAgIEFTU0VS
VChtX3R5cGUgPT0gQXJlYUltcG9ydCB8fCBtX3R5cGUgPT0gQXJlYVN5bmMgfHwgbV90eXBlID09
IERlbGV0ZUVtcHR5RGF0YWJhc2UpOwotfQotCi1Mb2NhbFN0b3JhZ2VUYXNrOjpMb2NhbFN0b3Jh
Z2VUYXNrKFR5cGUgdHlwZSwgTG9jYWxTdG9yYWdlVGhyZWFkKiB0aHJlYWQpCi0gICAgOiBtX3R5
cGUodHlwZSkKLSAgICAsIG1fYXJlYSgwKQotICAgICwgbV90aHJlYWQodGhyZWFkKQotewotICAg
IEFTU0VSVChtX3RocmVhZCk7Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSBUZXJtaW5hdGVUaHJlYWQp
OwotfQotICAgIAotTG9jYWxTdG9yYWdlVGFzazo6TG9jYWxTdG9yYWdlVGFzayhUeXBlIHR5cGUp
Ci0gICAgOiBtX3R5cGUodHlwZSkKLXsKLSAgICBBU1NFUlQobV90eXBlID09IEltcG9ydE9yaWdp
bnMgfHwgbV90eXBlID09IERlbGV0ZUFsbE9yaWdpbnMpOwotfQotICAgIAotTG9jYWxTdG9yYWdl
VGFzazo6TG9jYWxTdG9yYWdlVGFzayhUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
bnRpZmllcikKLSAgICA6IG1fdHlwZSh0eXBlKQotICAgICwgbV9vcmlnaW5JZGVudGlmaWVyKG9y
aWdpbklkZW50aWZpZXIpCi17Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSBEZWxldGVPcmlnaW4pOwot
fQotCi1Mb2NhbFN0b3JhZ2VUYXNrOjpMb2NhbFN0b3JhZ2VUYXNrKFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRmlsZW5hbWUp
Ci0gICAgOiBtX3R5cGUodHlwZSkKLSAgICAsIG1fb3JpZ2luSWRlbnRpZmllcihvcmlnaW5JZGVu
dGlmaWVyKQotICAgICwgbV9kYXRhYmFzZUZpbGVuYW1lKGRhdGFiYXNlRmlsZW5hbWUpCi17Ci0g
ICAgQVNTRVJUKG1fdHlwZSA9PSBTZXRPcmlnaW5EZXRhaWxzKTsKLX0KLQotTG9jYWxTdG9yYWdl
VGFzazo6fkxvY2FsU3RvcmFnZVRhc2soKQotewotfQotCi12b2lkIExvY2FsU3RvcmFnZVRhc2s6
OnBlcmZvcm1UYXNrKCkKLXsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgICAgICBjYXNlIEFy
ZWFJbXBvcnQ6Ci0gICAgICAgICAgICBtX2FyZWEtPnBlcmZvcm1JbXBvcnQoKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFyZWFTeW5jOgotICAgICAgICAgICAgbV9hcmVhLT5w
ZXJmb3JtU3luYygpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0T3JpZ2lu
RGV0YWlsczoKLSAgICAgICAgICAgIFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkuc3luY1NldE9y
aWdpbkRldGFpbHMobV9vcmlnaW5JZGVudGlmaWVyLCBtX2RhdGFiYXNlRmlsZW5hbWUpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSW1wb3J0T3JpZ2luczoKLSAgICAgICAgICAg
IFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkuc3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEZWxldGVBbGxPcmlnaW5zOgotICAg
ICAgICAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5zeW5jRGVsZXRlQWxsT3JpZ2lucygp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRGVsZXRlT3JpZ2luOgotICAgICAg
ICAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5zeW5jRGVsZXRlT3JpZ2luKG1fb3JpZ2lu
SWRlbnRpZmllcik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEZWxldGVFbXB0
eURhdGFiYXNlOgotICAgICAgICAgICAgbV9hcmVhLT5kZWxldGVFbXB0eURhdGFiYXNlKCk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUZXJtaW5hdGVUaHJlYWQ6Ci0gICAgICAg
ICAgICBtX3RocmVhZC0+cGVyZm9ybVRlcm1pbmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgfQotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3Rv
cmFnZVRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZThiNmIxLi4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgTG9jYWxTdG9yYWdlVGFza19oCi0jZGVmaW5lIExvY2FsU3RvcmFnZVRhc2tfaAot
Ci0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0g
ICAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOwotICAgIGNsYXNzIExvY2FsU3RvcmFnZVRocmVhZDsK
LQotICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhpcyBjbGFzcyB0byBTdG9yYWdlVGFzawotICAgIGNs
YXNzIExvY2FsU3RvcmFnZVRhc2sgewotICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2Nh
bFN0b3JhZ2VUYXNrKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAg
ICAgICBlbnVtIFR5cGUgeyBBcmVhSW1wb3J0LCBBcmVhU3luYywgRGVsZXRlRW1wdHlEYXRhYmFz
ZSwgU2V0T3JpZ2luRGV0YWlscywgSW1wb3J0T3JpZ2lucywgRGVsZXRlQWxsT3JpZ2lucywgRGVs
ZXRlT3JpZ2luLCBUZXJtaW5hdGVUaHJlYWQgfTsKLQotICAgICAgICB+TG9jYWxTdG9yYWdlVGFz
aygpOwotCi0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2FsU3RvcmFnZVRhc2s+IGNyZWF0
ZUltcG9ydChTdG9yYWdlQXJlYVN5bmMqIGFyZWEpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBMb2Nh
bFN0b3JhZ2VUYXNrKEFyZWFJbXBvcnQsIGFyZWEpKTsgfQotICAgICAgICBzdGF0aWMgUGFzc093
blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiBjcmVhdGVTeW5jKFN0b3JhZ2VBcmVhU3luYyogYXJlYSkg
eyByZXR1cm4gYWRvcHRQdHIobmV3IExvY2FsU3RvcmFnZVRhc2soQXJlYVN5bmMsIGFyZWEpKTsg
fQotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiBjcmVhdGVEZWxl
dGVFbXB0eURhdGFiYXNlKFN0b3JhZ2VBcmVhU3luYyogYXJlYSkgeyByZXR1cm4gYWRvcHRQdHIo
bmV3IExvY2FsU3RvcmFnZVRhc2soRGVsZXRlRW1wdHlEYXRhYmFzZSwgYXJlYSkpOyB9Ci0gICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2FsU3RvcmFnZVRhc2s+IGNyZWF0ZU9yaWdpbklkZW50
aWZpZXJzSW1wb3J0KCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IExvY2FsU3RvcmFnZVRhc2soSW1w
b3J0T3JpZ2lucykpOyB9Ci0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2FsU3RvcmFnZVRh
c2s+IGNyZWF0ZVNldE9yaWdpbkRldGFpbHMoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRmlsZW5hbWUpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBM
b2NhbFN0b3JhZ2VUYXNrKFNldE9yaWdpbkRldGFpbHMsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFi
YXNlRmlsZW5hbWUpKTsgfQotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbFN0b3JhZ2VU
YXNrPiBjcmVhdGVEZWxldGVPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSB7
IHJldHVybiBhZG9wdFB0cihuZXcgTG9jYWxTdG9yYWdlVGFzayhEZWxldGVPcmlnaW4sIG9yaWdp
bklkZW50aWZpZXIpKTsgfQotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbFN0b3JhZ2VU
YXNrPiBjcmVhdGVEZWxldGVBbGxPcmlnaW5zKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IExvY2Fs
U3RvcmFnZVRhc2soRGVsZXRlQWxsT3JpZ2lucykpOyB9Ci0gICAgICAgIHN0YXRpYyBQYXNzT3du
UHRyPExvY2FsU3RvcmFnZVRhc2s+IGNyZWF0ZVRlcm1pbmF0ZShMb2NhbFN0b3JhZ2VUaHJlYWQq
IHRocmVhZCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IExvY2FsU3RvcmFnZVRhc2soVGVybWluYXRl
VGhyZWFkLCB0aHJlYWQpKTsgfQotCi0gICAgICAgIHZvaWQgcGVyZm9ybVRhc2soKTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIExvY2FsU3RvcmFnZVRhc2soVHlwZSwgU3RvcmFnZUFyZWFTeW5j
Kik7Ci0gICAgICAgIExvY2FsU3RvcmFnZVRhc2soVHlwZSwgTG9jYWxTdG9yYWdlVGhyZWFkKik7
Ci0gICAgICAgIExvY2FsU3RvcmFnZVRhc2soVHlwZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyKTsKLSAgICAgICAgTG9jYWxTdG9yYWdlVGFzayhUeXBlLCBjb25zdCBTdHJpbmcmIG9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VGaWxlbmFtZSk7Ci0gICAgICAg
IExvY2FsU3RvcmFnZVRhc2soVHlwZSk7Ci0KLSAgICAgICAgVHlwZSBtX3R5cGU7Ci0gICAgICAg
IFN0b3JhZ2VBcmVhU3luYyogbV9hcmVhOwotICAgICAgICBMb2NhbFN0b3JhZ2VUaHJlYWQqIG1f
dGhyZWFkOwotICAgICAgICBTdHJpbmcgbV9vcmlnaW5JZGVudGlmaWVyOwotICAgICAgICBTdHJp
bmcgbV9kYXRhYmFzZUZpbGVuYW1lOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIExvY2FsU3RvcmFnZVRhc2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
OGU0NGI2Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdl
VGhyZWFkLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiTG9jYWxTdG9yYWdlVGhyZWFkLmgiCi0KLSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VUYXNr
LmgiCi0jaW5jbHVkZSAiU3RvcmFnZUFyZWFTeW5jLmgiCi0jaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzT3duUHRyPExvY2FsU3RvcmFnZVRo
cmVhZD4gTG9jYWxTdG9yYWdlVGhyZWFkOjpjcmVhdGUoKQotewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgTG9jYWxTdG9yYWdlVGhyZWFkKTsKLX0KLQotTG9jYWxTdG9yYWdlVGhyZWFkOjpMb2Nh
bFN0b3JhZ2VUaHJlYWQoKQotICAgIDogbV90aHJlYWRJRCgwKQotewotfQotCi1Mb2NhbFN0b3Jh
Z2VUaHJlYWQ6On5Mb2NhbFN0b3JhZ2VUaHJlYWQoKQotewotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0gICAgQVNTRVJUKCFtX3RocmVhZElEKTsKLX0KLQotYm9vbCBMb2NhbFN0b3JhZ2VU
aHJlYWQ6OnN0YXJ0KCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICgh
bV90aHJlYWRJRCkKLSAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChMb2NhbFN0b3Jh
Z2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IExvY2Fs
U3RvcmFnZSIpOwotICAgIHJldHVybiBtX3RocmVhZElEOwotfQotCi12b2lkIExvY2FsU3RvcmFn
ZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrKHZvaWQqIHRocmVhZCkKLXsKLSAgICBz
dGF0aWNfY2FzdDxMb2NhbFN0b3JhZ2VUaHJlYWQqPih0aHJlYWQpLT50aHJlYWRFbnRyeVBvaW50
KCk7Ci19Ci0KLXZvaWQgTG9jYWxTdG9yYWdlVGhyZWFkOjp0aHJlYWRFbnRyeVBvaW50KCkKLXsK
LSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICB3aGlsZSAoT3duUHRyPExvY2FsU3Rv
cmFnZVRhc2s+IHRhc2sgPSBtX3F1ZXVlLndhaXRGb3JNZXNzYWdlKCkpCi0gICAgICAgIHRhc2st
PnBlcmZvcm1UYXNrKCk7Ci19Ci0KLXZvaWQgTG9jYWxTdG9yYWdlVGhyZWFkOjpzY2hlZHVsZVRh
c2soUGFzc093blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiB0YXNrKQotewotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKCFtX3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFkSUQp
OwotICAgIG1fcXVldWUuYXBwZW5kKHRhc2spOwotfQotCi12b2lkIExvY2FsU3RvcmFnZVRocmVh
ZDo6dGVybWluYXRlKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIEFTU0VS
VCghbV9xdWV1ZS5raWxsZWQoKSAmJiBtX3RocmVhZElEKTsKLSAgICAvLyBFdmVuIGluIHdlaXJk
LCBleGNlcHRpb25hbCBjYXNlcywgZG9uJ3Qgd2FpdCBvbiBhIG5vbmV4aXN0ZW50IHRocmVhZCB0
byB0ZXJtaW5hdGUuCi0gICAgaWYgKCFtX3RocmVhZElEKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX3F1ZXVlLmFwcGVuZChMb2NhbFN0b3JhZ2VUYXNrOjpjcmVhdGVUZXJtaW5hdGUodGhpcykp
OwotICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1fdGhyZWFkSUQpOwotICAgIEFTU0VSVCht
X3F1ZXVlLmtpbGxlZCgpKTsKLSAgICBtX3RocmVhZElEID0gMDsKLX0KLQotdm9pZCBMb2NhbFN0
b3JhZ2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5hdGUoKQotewotICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwotICAgIG1fcXVldWUua2lsbCgpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDM0ZjMxZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFn
ZVRocmVhZC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTG9jYWxTdG9yYWdlVGhyZWFk
X2gKLSNkZWZpbmUgTG9jYWxTdG9yYWdlVGhyZWFkX2gKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+Ci0jaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIFN0b3JhZ2VBcmVhU3lu
YzsKLSAgICBjbGFzcyBMb2NhbFN0b3JhZ2VUYXNrOwotCi0gICAgLy8gRklYTUU6IFJlbmFtZSB0
aGlzIGNsYXNzIHRvIFN0b3JhZ2VUaHJlYWQKLSAgICBjbGFzcyBMb2NhbFN0b3JhZ2VUaHJlYWQg
ewotICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NhbFN0b3JhZ2VUaHJlYWQpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzT3du
UHRyPExvY2FsU3RvcmFnZVRocmVhZD4gY3JlYXRlKCk7Ci0gICAgICAgIH5Mb2NhbFN0b3JhZ2VU
aHJlYWQoKTsKLQotICAgICAgICBib29sIHN0YXJ0KCk7Ci0gICAgICAgIHZvaWQgdGVybWluYXRl
KCk7Ci0gICAgICAgIHZvaWQgc2NoZWR1bGVUYXNrKFBhc3NPd25QdHI8TG9jYWxTdG9yYWdlVGFz
az4pOwotCi0gICAgICAgIC8vIEJhY2tncm91bmQgdGhyZWFkIHBhcnQgb2YgdGhlIHRlcm1pbmF0
ZSBwcm9jZWR1cmUuCi0gICAgICAgIHZvaWQgcGVyZm9ybVRlcm1pbmF0ZSgpOwotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgTG9jYWxTdG9yYWdlVGhyZWFkKCk7Ci0KLSAgICAgICAgLy8gQ2FsbGVk
IG9uIGJhY2tncm91bmQgdGhyZWFkLgotICAgICAgICBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBv
aW50Q2FsbGJhY2sodm9pZCopOwotICAgICAgICB2b2lkIHRocmVhZEVudHJ5UG9pbnQoKTsKLQot
ICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSUQ7Ci0gICAgICAgIE1lc3NhZ2VRdWV1
ZTxMb2NhbFN0b3JhZ2VUYXNrPiBtX3F1ZXVlOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIExvY2FsU3RvcmFnZVRocmVhZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKaW5kZXggYzA1ZGU5OC4uYzM5ZmUwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcApAQCAt
MzAsOCArMzAsOCBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgotI2luY2x1ZGUgIkxvY2FsU3RvcmFnZVRhc2suaCIK
LSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VUaHJlYWQuaCIKKyNpbmNsdWRlICJTdG9yYWdlVGFzay5o
IgorI2luY2x1ZGUgIlN0b3JhZ2VUaHJlYWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFTeW5jLmgiCkBAIC00Nyw3ICs0
Nyw3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBTdG9yYWdlU3luY01hbmFnZXI6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCiB9CiAKIFN0b3JhZ2VTeW5jTWFuYWdlcjo6U3Rv
cmFnZVN5bmNNYW5hZ2VyKGNvbnN0IFN0cmluZyYgcGF0aCkKLSAgICA6IG1fdGhyZWFkKExvY2Fs
U3RvcmFnZVRocmVhZDo6Y3JlYXRlKCkpCisgICAgOiBtX3RocmVhZChTdG9yYWdlVGhyZWFkOjpj
cmVhdGUoKSkKICAgICAsIG1fcGF0aChwYXRoLmlzb2xhdGVkQ29weSgpKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CkBAIC04Nyw3ICs4Nyw3IEBAIGJvb2wgU3RvcmFnZVN5bmNNYW5h
Z2VyOjpzY2hlZHVsZUltcG9ydChQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4gYXJlYSkKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3RocmVhZCk7CiAgICAgaWYg
KG1fdGhyZWFkKQotICAgICAgICBtX3RocmVhZC0+c2NoZWR1bGVUYXNrKExvY2FsU3RvcmFnZVRh
c2s6OmNyZWF0ZUltcG9ydChhcmVhLmdldCgpKSk7CisgICAgICAgIG1fdGhyZWFkLT5zY2hlZHVs
ZVRhc2soU3RvcmFnZVRhc2s6OmNyZWF0ZUltcG9ydChhcmVhLmdldCgpKSk7CiAgICAgcmV0dXJu
IG1fdGhyZWFkOwogfQogCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgU3RvcmFnZVN5bmNNYW5hZ2Vy
OjpzY2hlZHVsZVN5bmMoUGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IGFyZWEpCiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV90aHJlYWQpOwogICAgIGlmIChtX3Ro
cmVhZCkKLSAgICAgICAgbV90aHJlYWQtPnNjaGVkdWxlVGFzayhMb2NhbFN0b3JhZ2VUYXNrOjpj
cmVhdGVTeW5jKGFyZWEuZ2V0KCkpKTsKKyAgICAgICAgbV90aHJlYWQtPnNjaGVkdWxlVGFzayhT
dG9yYWdlVGFzazo6Y3JlYXRlU3luYyhhcmVhLmdldCgpKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVN5
bmNNYW5hZ2VyOjpzY2hlZHVsZURlbGV0ZUVtcHR5RGF0YWJhc2UoUGFzc1JlZlB0cjxTdG9yYWdl
QXJlYVN5bmM+IGFyZWEpCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBTdG9yYWdlU3luY01hbmFn
ZXI6OnNjaGVkdWxlRGVsZXRlRW1wdHlEYXRhYmFzZShQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3lu
Yz4KICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3RocmVhZCk7CiAg
ICAgaWYgKG1fdGhyZWFkKQotICAgICAgICBtX3RocmVhZC0+c2NoZWR1bGVUYXNrKExvY2FsU3Rv
cmFnZVRhc2s6OmNyZWF0ZURlbGV0ZUVtcHR5RGF0YWJhc2UoYXJlYS5nZXQoKSkpOworICAgICAg
ICBtX3RocmVhZC0+c2NoZWR1bGVUYXNrKFN0b3JhZ2VUYXNrOjpjcmVhdGVEZWxldGVFbXB0eURh
dGFiYXNlKGFyZWEuZ2V0KCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmgKaW5kZXggNWUwZjE2NS4uZTI3
ODMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oCkBA
IC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIExvY2Fs
U3RvcmFnZVRocmVhZDsKKyAgICBjbGFzcyBTdG9yYWdlVGhyZWFkOwogICAgIGNsYXNzIFNlY3Vy
aXR5T3JpZ2luOwogICAgIGNsYXNzIFN0b3JhZ2VBcmVhU3luYzsKIApAQCAtNTIsNyArNTIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgU3RvcmFnZVN5bmNN
YW5hZ2VyKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKLSAgICAgICAgT3duUHRyPExvY2FsU3RvcmFn
ZVRocmVhZD4gbV90aHJlYWQ7CisgICAgICAgIE93blB0cjxTdG9yYWdlVGhyZWFkPiBtX3RocmVh
ZDsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWVtYmVycyBhcmUgc3ViamVjdCB0byB0aHJlYWQg
c3luY2hyb25pemF0aW9uIGlzc3VlcwogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2suY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdhYWJl
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2su
Y3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VUYXNrLmgi
CisKKyNpbmNsdWRlICJTdG9yYWdlVGhyZWFkLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFTeW5j
LmgiCisjaW5jbHVkZSAiU3RvcmFnZVRyYWNrZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTdG9yYWdlVGFzazo6U3RvcmFnZVRhc2soVHlwZSB0eXBlLCBTdG9yYWdlQXJlYVN5bmMqIGFy
ZWEpCisgICAgOiBtX3R5cGUodHlwZSkKKyAgICAsIG1fYXJlYShhcmVhKQorICAgICwgbV90aHJl
YWQoMCkKK3sKKyAgICBBU1NFUlQobV9hcmVhKTsKKyAgICBBU1NFUlQobV90eXBlID09IEFyZWFJ
bXBvcnQgfHwgbV90eXBlID09IEFyZWFTeW5jIHx8IG1fdHlwZSA9PSBEZWxldGVFbXB0eURhdGFi
YXNlKTsKK30KKworU3RvcmFnZVRhc2s6OlN0b3JhZ2VUYXNrKFR5cGUgdHlwZSwgU3RvcmFnZVRo
cmVhZCogdGhyZWFkKQorICAgIDogbV90eXBlKHR5cGUpCisgICAgLCBtX2FyZWEoMCkKKyAgICAs
IG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBBU1NFUlQobV90aHJlYWQpOworICAgIEFTU0VSVCht
X3R5cGUgPT0gVGVybWluYXRlVGhyZWFkKTsKK30KKworU3RvcmFnZVRhc2s6OlN0b3JhZ2VUYXNr
KFR5cGUgdHlwZSkKKyAgICA6IG1fdHlwZSh0eXBlKQoreworICAgIEFTU0VSVChtX3R5cGUgPT0g
SW1wb3J0T3JpZ2lucyB8fCBtX3R5cGUgPT0gRGVsZXRlQWxsT3JpZ2lucyk7Cit9CisKK1N0b3Jh
Z2VUYXNrOjpTdG9yYWdlVGFzayhUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllcikKKyAgICA6IG1fdHlwZSh0eXBlKQorICAgICwgbV9vcmlnaW5JZGVudGlmaWVyKG9yaWdp
bklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBEZWxldGVPcmlnaW4pOworfQor
CitTdG9yYWdlVGFzazo6U3RvcmFnZVRhc2soVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VGaWxlbmFtZSkKKyAgICA6IG1fdHlw
ZSh0eXBlKQorICAgICwgbV9vcmlnaW5JZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpCisgICAg
LCBtX2RhdGFiYXNlRmlsZW5hbWUoZGF0YWJhc2VGaWxlbmFtZSkKK3sKKyAgICBBU1NFUlQobV90
eXBlID09IFNldE9yaWdpbkRldGFpbHMpOworfQorCitTdG9yYWdlVGFzazo6flN0b3JhZ2VUYXNr
KCkKK3sKK30KKwordm9pZCBTdG9yYWdlVGFzazo6cGVyZm9ybVRhc2soKQoreworICAgIHN3aXRj
aCAobV90eXBlKSB7CisgICAgICAgIGNhc2UgQXJlYUltcG9ydDoKKyAgICAgICAgICAgIG1fYXJl
YS0+cGVyZm9ybUltcG9ydCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJl
YVN5bmM6CisgICAgICAgICAgICBtX2FyZWEtPnBlcmZvcm1TeW5jKCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBTZXRPcmlnaW5EZXRhaWxzOgorICAgICAgICAgICAgU3RvcmFn
ZVRyYWNrZXI6OnRyYWNrZXIoKS5zeW5jU2V0T3JpZ2luRGV0YWlscyhtX29yaWdpbklkZW50aWZp
ZXIsIG1fZGF0YWJhc2VGaWxlbmFtZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBJbXBvcnRPcmlnaW5zOgorICAgICAgICAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5z
eW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIERlbGV0ZUFsbE9yaWdpbnM6CisgICAgICAgICAgICBTdG9yYWdlVHJhY2tlcjo6dHJh
Y2tlcigpLnN5bmNEZWxldGVBbGxPcmlnaW5zKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBEZWxldGVPcmlnaW46CisgICAgICAgICAgICBTdG9yYWdlVHJhY2tlcjo6dHJhY2tl
cigpLnN5bmNEZWxldGVPcmlnaW4obV9vcmlnaW5JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIERlbGV0ZUVtcHR5RGF0YWJhc2U6CisgICAgICAgICAgICBtX2Fy
ZWEtPmRlbGV0ZUVtcHR5RGF0YWJhc2UoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFRlcm1pbmF0ZVRocmVhZDoKKyAgICAgICAgICAgIG1fdGhyZWFkLT5wZXJmb3JtVGVybWlu
YXRlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZVRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDA1
MjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGFz
ay5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VUYXNrX2gKKyNkZWZpbmUgU3RvcmFnZVRhc2tfaAor
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisg
ICAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOworICAgIGNsYXNzIFN0b3JhZ2VUaHJlYWQ7CisKKyAg
ICBjbGFzcyBTdG9yYWdlVGFzayB7CisgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0b3Jh
Z2VUYXNrKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBl
bnVtIFR5cGUgeyBBcmVhSW1wb3J0LCBBcmVhU3luYywgRGVsZXRlRW1wdHlEYXRhYmFzZSwgU2V0
T3JpZ2luRGV0YWlscywgSW1wb3J0T3JpZ2lucywgRGVsZXRlQWxsT3JpZ2lucywgRGVsZXRlT3Jp
Z2luLCBUZXJtaW5hdGVUaHJlYWQgfTsKKworICAgICAgICB+U3RvcmFnZVRhc2soKTsKKworICAg
ICAgICBzdGF0aWMgUGFzc093blB0cjxTdG9yYWdlVGFzaz4gY3JlYXRlSW1wb3J0KFN0b3JhZ2VB
cmVhU3luYyogYXJlYSkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFN0b3JhZ2VUYXNrKEFyZWFJbXBv
cnQsIGFyZWEpKTsgfQorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxTdG9yYWdlVGFzaz4gY3Jl
YXRlU3luYyhTdG9yYWdlQXJlYVN5bmMqIGFyZWEpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBTdG9y
YWdlVGFzayhBcmVhU3luYywgYXJlYSkpOyB9CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFN0
b3JhZ2VUYXNrPiBjcmVhdGVEZWxldGVFbXB0eURhdGFiYXNlKFN0b3JhZ2VBcmVhU3luYyogYXJl
YSkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFN0b3JhZ2VUYXNrKERlbGV0ZUVtcHR5RGF0YWJhc2Us
IGFyZWEpKTsgfQorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxTdG9yYWdlVGFzaz4gY3JlYXRl
T3JpZ2luSWRlbnRpZmllcnNJbXBvcnQoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU3RvcmFnZVRh
c2soSW1wb3J0T3JpZ2lucykpOyB9CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFN0b3JhZ2VU
YXNrPiBjcmVhdGVTZXRPcmlnaW5EZXRhaWxzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUZpbGVuYW1lKSB7IHJldHVybiBhZG9wdFB0cihuZXcg
U3RvcmFnZVRhc2soU2V0T3JpZ2luRGV0YWlscywgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VG
aWxlbmFtZSkpOyB9CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFN0b3JhZ2VUYXNrPiBjcmVh
dGVEZWxldGVPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSB7IHJldHVybiBh
ZG9wdFB0cihuZXcgU3RvcmFnZVRhc2soRGVsZXRlT3JpZ2luLCBvcmlnaW5JZGVudGlmaWVyKSk7
IH0KKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8U3RvcmFnZVRhc2s+IGNyZWF0ZURlbGV0ZUFs
bE9yaWdpbnMoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU3RvcmFnZVRhc2soRGVsZXRlQWxsT3Jp
Z2lucykpOyB9CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFN0b3JhZ2VUYXNrPiBjcmVhdGVU
ZXJtaW5hdGUoU3RvcmFnZVRocmVhZCogdGhyZWFkKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU3Rv
cmFnZVRhc2soVGVybWluYXRlVGhyZWFkLCB0aHJlYWQpKTsgfQorCisgICAgICAgIHZvaWQgcGVy
Zm9ybVRhc2soKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFN0b3JhZ2VUYXNrKFR5cGUsIFN0
b3JhZ2VBcmVhU3luYyopOworICAgICAgICBTdG9yYWdlVGFzayhUeXBlLCBTdG9yYWdlVGhyZWFk
Kik7CisgICAgICAgIFN0b3JhZ2VUYXNrKFR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
Zmllcik7CisgICAgICAgIFN0b3JhZ2VUYXNrKFR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUZpbGVuYW1lKTsKKyAgICAgICAgU3RvcmFn
ZVRhc2soVHlwZSk7CisKKyAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIFN0b3JhZ2VBcmVh
U3luYyogbV9hcmVhOworICAgICAgICBTdG9yYWdlVGhyZWFkKiBtX3RocmVhZDsKKyAgICAgICAg
U3RyaW5nIG1fb3JpZ2luSWRlbnRpZmllcjsKKyAgICAgICAgU3RyaW5nIG1fZGF0YWJhc2VGaWxl
bmFtZTsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTdG9y
YWdlVGFza19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjNkN2VhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcApAQCAtMCwwICsxLDk4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VUaHJlYWQuaCIKKworI2luY2x1ZGUgIlN0b3Jh
Z2VUYXNrLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFTeW5jLmgiCisjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPFN0b3JhZ2VU
aHJlYWQ+IFN0b3JhZ2VUaHJlYWQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBTdG9yYWdlVGhyZWFkKTsKK30KKworU3RvcmFnZVRocmVhZDo6U3RvcmFnZVRocmVhZCgpCisg
ICAgOiBtX3RocmVhZElEKDApCit7Cit9CisKK1N0b3JhZ2VUaHJlYWQ6On5TdG9yYWdlVGhyZWFk
KCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghbV90aHJlYWRJ
RCk7Cit9CisKK2Jvb2wgU3RvcmFnZVRocmVhZDo6c3RhcnQoKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgaWYgKCFtX3RocmVhZElEKQorICAgICAgICBtX3RocmVhZElEID0g
Y3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhp
cywgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIpOworICAgIHJldHVybiBtX3RocmVhZElEOworfQor
Cit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjayh2b2lkKiB0aHJl
YWQpCit7CisgICAgc3RhdGljX2Nhc3Q8U3RvcmFnZVRocmVhZCo+KHRocmVhZCktPnRocmVhZEVu
dHJ5UG9pbnQoKTsKK30KKwordm9pZCBTdG9yYWdlVGhyZWFkOjp0aHJlYWRFbnRyeVBvaW50KCkK
K3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICB3aGlsZSAoT3duUHRyPFN0b3Jh
Z2VUYXNrPiB0YXNrID0gbV9xdWV1ZS53YWl0Rm9yTWVzc2FnZSgpKQorICAgICAgICB0YXNrLT5w
ZXJmb3JtVGFzaygpOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnNjaGVkdWxlVGFzayhQYXNz
T3duUHRyPFN0b3JhZ2VUYXNrPiB0YXNrKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKCFtX3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFkSUQpOworICAgIG1fcXVl
dWUuYXBwZW5kKHRhc2spOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIW1fcXVldWUua2lsbGVk
KCkgJiYgbV90aHJlYWRJRCk7CisgICAgLy8gRXZlbiBpbiB3ZWlyZCwgZXhjZXB0aW9uYWwgY2Fz
ZXMsIGRvbid0IHdhaXQgb24gYSBub25leGlzdGVudCB0aHJlYWQgdG8gdGVybWluYXRlLgorICAg
IGlmICghbV90aHJlYWRJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9xdWV1ZS5hcHBlbmQo
U3RvcmFnZVRhc2s6OmNyZWF0ZVRlcm1pbmF0ZSh0aGlzKSk7CisgICAgd2FpdEZvclRocmVhZENv
bXBsZXRpb24obV90aHJlYWRJRCk7CisgICAgQVNTRVJUKG1fcXVldWUua2lsbGVkKCkpOworICAg
IG1fdGhyZWFkSUQgPSAwOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5h
dGUoKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIG1fcXVldWUua2lsbCgp
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ODQxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaApAQCAtMCwwICsxLDY2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdl
VGhyZWFkX2gKKyNkZWZpbmUgU3RvcmFnZVRocmVhZF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBTdG9yYWdlQXJlYVN5
bmM7CisgICAgY2xhc3MgU3RvcmFnZVRhc2s7CisKKyAgICBjbGFzcyBTdG9yYWdlVGhyZWFkIHsK
KyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3RvcmFnZVRocmVhZCk7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8U3Rv
cmFnZVRocmVhZD4gY3JlYXRlKCk7CisgICAgICAgIH5TdG9yYWdlVGhyZWFkKCk7CisKKyAgICAg
ICAgYm9vbCBzdGFydCgpOworICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOworICAgICAgICB2b2lk
IHNjaGVkdWxlVGFzayhQYXNzT3duUHRyPFN0b3JhZ2VUYXNrPik7CisKKyAgICAgICAgLy8gQmFj
a2dyb3VuZCB0aHJlYWQgcGFydCBvZiB0aGUgdGVybWluYXRlIHByb2NlZHVyZS4KKyAgICAgICAg
dm9pZCBwZXJmb3JtVGVybWluYXRlKCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBTdG9yYWdl
VGhyZWFkKCk7CisKKyAgICAgICAgLy8gQ2FsbGVkIG9uIGJhY2tncm91bmQgdGhyZWFkLgorICAg
ICAgICBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50Q2FsbGJhY2sodm9pZCopOworICAgICAg
ICB2b2lkIHRocmVhZEVudHJ5UG9pbnQoKTsKKworICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1f
dGhyZWFkSUQ7CisgICAgICAgIE1lc3NhZ2VRdWV1ZTxTdG9yYWdlVGFzaz4gbV9xdWV1ZTsKKyAg
ICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTdG9yYWdlVGhyZWFk
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKaW5kZXggZjk4MWU2
Yi4uOWUxOGRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJh
Y2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAK
QEAgLTI4LDggKzI4LDggQEAKIAogI2luY2x1ZGUgIkRhdGFiYXNlVGhyZWFkLmgiCiAjaW5jbHVk
ZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkxvY2FsU3RvcmFnZVRhc2suaCIKLSNpbmNsdWRl
ICJMb2NhbFN0b3JhZ2VUaHJlYWQuaCIKKyNpbmNsdWRlICJTdG9yYWdlVGFzay5oIgorI2luY2x1
ZGUgIlN0b3JhZ2VUaHJlYWQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFn
ZUdyb3VwLmgiCiAjaW5jbHVkZSAiU1FMaXRlRmlsZVN5c3RlbS5oIgpAQCAtODcsNyArODcsNyBA
QCBTdG9yYWdlVHJhY2tlciYgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKQogU3RvcmFnZVRyYWNr
ZXI6OlN0b3JhZ2VUcmFja2VyKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgpCiAgICAgOiBtX3N0
b3JhZ2VEaXJlY3RvcnlQYXRoKHN0b3JhZ2VQYXRoLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9j
bGllbnQoMCkKLSAgICAsIG1fdGhyZWFkKExvY2FsU3RvcmFnZVRocmVhZDo6Y3JlYXRlKCkpCisg
ICAgLCBtX3RocmVhZChTdG9yYWdlVGhyZWFkOjpjcmVhdGUoKSkKICAgICAsIG1faXNBY3RpdmUo
ZmFsc2UpCiAgICAgLCBtX25lZWRzSW5pdGlhbGl6YXRpb24oZmFsc2UpCiAgICAgLCBtX2Zpbmlz
aGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnMoZmFsc2UpCkBAIC0xNjMsNyArMTYzLDcgQEAg
dm9pZCBTdG9yYWdlVHJhY2tlcjo6aW1wb3J0T3JpZ2luSWRlbnRpZmllcnMoKQogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fdGhyZWFkKTsKIAotICAgIG1fdGhyZWFk
LT5zY2hlZHVsZVRhc2soTG9jYWxTdG9yYWdlVGFzazo6Y3JlYXRlT3JpZ2luSWRlbnRpZmllcnNJ
bXBvcnQoKSk7CisgICAgbV90aHJlYWQtPnNjaGVkdWxlVGFzayhTdG9yYWdlVGFzazo6Y3JlYXRl
T3JpZ2luSWRlbnRpZmllcnNJbXBvcnQoKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om5v
dGlmeUZpbmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmllcnNPbk1haW5UaHJlYWQodm9pZCop
CkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c2V0T3JpZ2luRGV0YWls
cyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmkKICAgICAgICAgbV9v
cmlnaW5TZXQuYWRkKG9yaWdpbklkZW50aWZpZXIpOwogICAgIH0KIAotICAgIE93blB0cjxMb2Nh
bFN0b3JhZ2VUYXNrPiB0YXNrID0gTG9jYWxTdG9yYWdlVGFzazo6Y3JlYXRlU2V0T3JpZ2luRGV0
YWlscyhvcmlnaW5JZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBkYXRhYmFzZUZpbGUpOworICAg
IE93blB0cjxTdG9yYWdlVGFzaz4gdGFzayA9IFN0b3JhZ2VUYXNrOjpjcmVhdGVTZXRPcmlnaW5E
ZXRhaWxzKG9yaWdpbklkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCksIGRhdGFiYXNlRmlsZSk7CiAK
ICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKICAgICAgICAgQVNTRVJUKG1fdGhyZWFkKTsKQEAg
LTMxMSw3ICszMTEsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzY2hlZHVsZVRhc2sodm9pZCog
dGFza0luKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKFN0b3JhZ2VU
cmFja2VyOjp0cmFja2VyKCkubV90aHJlYWQpOwogICAgIAotICAgIE93blB0cjxMb2NhbFN0b3Jh
Z2VUYXNrPiB0YXNrID0gYWRvcHRQdHIocmVpbnRlcnByZXRfY2FzdDxMb2NhbFN0b3JhZ2VUYXNr
Kj4odGFza0luKSk7CisgICAgT3duUHRyPFN0b3JhZ2VUYXNrPiB0YXNrID0gYWRvcHRQdHIocmVp
bnRlcnByZXRfY2FzdDxTdG9yYWdlVGFzayo+KHRhc2tJbikpOwogCiAgICAgU3RvcmFnZVRyYWNr
ZXI6OnRyYWNrZXIoKS5tX3RocmVhZC0+c2NoZWR1bGVUYXNrKHRhc2sucmVsZWFzZSgpKTsKIH0K
QEAgLTM4Myw3ICszODMsNyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5z
KCkKIAogICAgIFBhZ2VHcm91cDo6Y2xlYXJMb2NhbFN0b3JhZ2VGb3JBbGxPcmlnaW5zKCk7CiAg
ICAgCi0gICAgbV90aHJlYWQtPnNjaGVkdWxlVGFzayhMb2NhbFN0b3JhZ2VUYXNrOjpjcmVhdGVE
ZWxldGVBbGxPcmlnaW5zKCkpOworICAgIG1fdGhyZWFkLT5zY2hlZHVsZVRhc2soU3RvcmFnZVRh
c2s6OmNyZWF0ZURlbGV0ZUFsbE9yaWdpbnMoKSk7CiB9CiAgICAgCiB2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucygpCkBAIC00NzksNyArNDc5LDcgQEAgdm9pZCBTdG9y
YWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAgICAgICAg
IG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5JZCk7CiAgICAgfQogICAgIAotICAgIG1fdGhyZWFk
LT5zY2hlZHVsZVRhc2soTG9jYWxTdG9yYWdlVGFzazo6Y3JlYXRlRGVsZXRlT3JpZ2luKG9yaWdp
bklkKSk7CisgICAgbV90aHJlYWQtPnNjaGVkdWxlVGFzayhTdG9yYWdlVGFzazo6Y3JlYXRlRGVs
ZXRlT3JpZ2luKG9yaWdpbklkKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxl
dGVPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlVHJhY2tlci5oCmluZGV4IGQ3Y2I4MjQuLjllMTk0NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBMb2NhbFN0b3JhZ2VUYXNrOwotY2xhc3MgTG9jYWxTdG9y
YWdlVGhyZWFkOworY2xhc3MgU3RvcmFnZVRhc2s7CitjbGFzcyBTdG9yYWdlVGhyZWFkOwogY2xh
c3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBTdG9yYWdlVHJhY2tlckNsaWVudDsgICAgCiAKQEAg
LTExMyw3ICsxMTMsNyBAQCBwcml2YXRlOgogICAgIE9yaWdpblNldCBtX29yaWdpblNldDsKICAg
ICBPcmlnaW5TZXQgbV9vcmlnaW5zQmVpbmdEZWxldGVkOwogCi0gICAgT3duUHRyPExvY2FsU3Rv
cmFnZVRocmVhZD4gbV90aHJlYWQ7CisgICAgT3duUHRyPFN0b3JhZ2VUaHJlYWQ+IG1fdGhyZWFk
OwogICAgIAogICAgIGJvb2wgbV9pc0FjdGl2ZTsKICAgICBib29sIG1fbmVlZHNJbml0aWFsaXph
dGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uvd2luY2UvTG9jYWxTdG9y
YWdlVGhyZWFkV2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0
b3JhZ2VUaHJlYWRXaW5DRS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwYzRl
ODkuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3Jh
Z2VUaHJlYWRXaW5DRS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpIHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiTG9jYWxTdG9yYWdlVGhyZWFkLmgiCi0KLSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VU
YXNrLmgiCi0jaW5jbHVkZSAiU3RvcmFnZUFyZWFTeW5jLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotTG9jYWxTdG9yYWdlVGhyZWFkOjpMb2NhbFN0b3JhZ2VUaHJlYWQoKQotOiBtX3RpbWVy
KHRoaXMsICZMb2NhbFN0b3JhZ2VUaHJlYWQ6OnRpbWVyRmlyZWQpCi17Ci19Ci0KLUxvY2FsU3Rv
cmFnZVRocmVhZDo6fkxvY2FsU3RvcmFnZVRocmVhZCgpCi17Ci19Ci0KLWJvb2wgTG9jYWxTdG9y
YWdlVGhyZWFkOjpzdGFydCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgTG9jYWxT
dG9yYWdlVGhyZWFkOjp0aW1lckZpcmVkKFRpbWVyPExvY2FsU3RvcmFnZVRocmVhZD4qKQotewot
ICAgIGlmICghbV9xdWV1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmVmUHRyPExvY2FsU3RvcmFn
ZVRhc2s+IHRhc2sgPSBtX3F1ZXVlLmZpcnN0KCk7Ci0gICAgICAgIHRhc2stPnBlcmZvcm1UYXNr
KCk7Ci0gICAgICAgIG1fcXVldWUucmVtb3ZlRmlyc3QoKTsKLSAgICAgICAgaWYgKCFtX3F1ZXVl
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgIH0K
LX0KLQotdm9pZCBMb2NhbFN0b3JhZ2VUaHJlYWQ6OnNjaGVkdWxlSW1wb3J0KFBhc3NSZWZQdHI8
U3RvcmFnZUFyZWFTeW5jPiBhcmVhKQotewotICAgIG1fcXVldWUuYXBwZW5kKExvY2FsU3RvcmFn
ZVRhc2s6OmNyZWF0ZUltcG9ydChhcmVhKSk7Ci0gICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkp
Ci0gICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIExvY2FsU3RvcmFn
ZVRocmVhZDo6c2NoZWR1bGVTeW5jKFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBhcmVhKQot
ewotICAgIG1fcXVldWUuYXBwZW5kKExvY2FsU3RvcmFnZVRhc2s6OmNyZWF0ZVN5bmMoYXJlYSkp
OwotICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3RpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKLX0KLQotdm9pZCBMb2NhbFN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCi17Ci0g
ICAgbV9xdWV1ZS5jbGVhcigpOwotICAgIG1fdGltZXIuc3RvcCgpOwotfQotCi12b2lkIExvY2Fs
U3RvcmFnZVRocmVhZDo6cGVyZm9ybVRlcm1pbmF0ZSgpCi17Ci0gICAgbV9xdWV1ZS5jbGVhcigp
OwotICAgIG1fdGltZXIuc3RvcCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL3dpbmNlL0xvY2FsU3RvcmFnZVRocmVhZFdp
bkNFLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL3dpbmNlL0xvY2FsU3RvcmFnZVRocmVhZFdp
bkNFLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2ZTdkNDUuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaSB3aWxsIGJl
IHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0gKi8KLQotCi0jaWZuZGVmIExvY2FsU3RvcmFnZVRocmVhZFdpbkNFX2gKLSNk
ZWZpbmUgTG9jYWxTdG9yYWdlVGhyZWFkV2luQ0VfaAotCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0g
ICAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOwotICAgIGNsYXNzIExvY2FsU3RvcmFnZVRhc2s7Ci0K
LSAgICBjbGFzcyBMb2NhbFN0b3JhZ2VUaHJlYWQgOiBwdWJsaWMgUmVmQ291bnRlZDxMb2NhbFN0
b3JhZ2VUaHJlYWQ+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPExv
Y2FsU3RvcmFnZVRocmVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IExvY2FsU3Rv
cmFnZVRocmVhZCk7IH0KLQotICAgICAgICB+TG9jYWxTdG9yYWdlVGhyZWFkKCk7Ci0gICAgICAg
IGJvb2wgc3RhcnQoKTsKLSAgICAgICAgdm9pZCBzY2hlZHVsZUltcG9ydChQYXNzUmVmUHRyPFN0
b3JhZ2VBcmVhU3luYz4pOwotICAgICAgICB2b2lkIHNjaGVkdWxlU3luYyhQYXNzUmVmUHRyPFN0
b3JhZ2VBcmVhU3luYz4pOwotICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwotICAgICAgICB2b2lk
IHBlcmZvcm1UZXJtaW5hdGUoKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIExvY2FsU3RvcmFn
ZVRocmVhZCgpOwotCi0gICAgICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxMb2NhbFN0b3JhZ2VU
aHJlYWQ+Kik7Ci0KLSAgICAgICAgRGVxdWU8UmVmUHRyPExvY2FsU3RvcmFnZVRhc2s+ID4gbV9x
dWV1ZTsKLSAgICAgICAgVGltZXI8TG9jYWxTdG9yYWdlVGhyZWFkPiBtX3RpbWVyOwotICAgIH07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIExvY2FsU3RvcmFnZVRocmVh
ZFdpbkNFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFn
ZVRocmVhZFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFnZVRo
cmVhZFdpbkNFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWU4OTZm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdl
VGhyZWFkV2luQ0UuY3BwCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgVG9yY2ggTW9iaWxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGkgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdG9yYWdl
VGhyZWFkLmgiCisKKyNpbmNsdWRlICJTdG9yYWdlVGFzay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhU3luYy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0b3JhZ2VUaHJlYWQ6OlN0b3Jh
Z2VUaHJlYWQoKQorOiBtX3RpbWVyKHRoaXMsICZTdG9yYWdlVGhyZWFkOjp0aW1lckZpcmVkKQor
eworfQorCitTdG9yYWdlVGhyZWFkOjp+U3RvcmFnZVRocmVhZCgpCit7Cit9CisKK2Jvb2wgU3Rv
cmFnZVRocmVhZDo6c3RhcnQoKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFN0b3Jh
Z2VUaHJlYWQ6OnRpbWVyRmlyZWQoVGltZXI8U3RvcmFnZVRocmVhZD4qKQoreworICAgIGlmICgh
bV9xdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPFN0b3JhZ2VUYXNrPiB0YXNrID0g
bV9xdWV1ZS5maXJzdCgpOworICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygpOworICAgICAgICBt
X3F1ZXVlLnJlbW92ZUZpcnN0KCk7CisgICAgICAgIGlmICghbV9xdWV1ZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9Cit9CisKK3ZvaWQgU3Rv
cmFnZVRocmVhZDo6c2NoZWR1bGVJbXBvcnQoUGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IGFy
ZWEpCit7CisgICAgbV9xdWV1ZS5hcHBlbmQoU3RvcmFnZVRhc2s6OmNyZWF0ZUltcG9ydChhcmVh
KSk7CisgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRP
bmVTaG90KDApOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnNjaGVkdWxlU3luYyhQYXNzUmVm
UHRyPFN0b3JhZ2VBcmVhU3luYz4gYXJlYSkKK3sKKyAgICBtX3F1ZXVlLmFwcGVuZChTdG9yYWdl
VGFzazo6Y3JlYXRlU3luYyhhcmVhKSk7CisgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisg
ICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6
OnRlcm1pbmF0ZSgpCit7CisgICAgbV9xdWV1ZS5jbGVhcigpOworICAgIG1fdGltZXIuc3RvcCgp
OworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5hdGUoKQoreworICAgIG1f
cXVldWUuY2xlYXIoKTsKKyAgICBtX3RpbWVyLnN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdl
VGhyZWFkV2luQ0UuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFnZVRocmVh
ZFdpbkNFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc1NzNhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFnZVRocmVh
ZFdpbkNFLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3Jj
aCBNb2JpbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaSB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworCisjaWZuZGVmIFN0b3JhZ2VUaHJlYWRXaW5DRV9oCisjZGVmaW5lIFN0b3Jh
Z2VUaHJlYWRXaW5DRV9oCisKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBTdG9yYWdl
QXJlYVN5bmM7CisgICAgY2xhc3MgU3RvcmFnZVRhc2s7CisKKyAgICBjbGFzcyBTdG9yYWdlVGhy
ZWFkIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZVRocmVhZD4geworICAgIHB1YmxpYzoKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZVRocmVhZD4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFN0b3JhZ2VUaHJlYWQpOyB9CisKKyAgICAgICAgflN0b3JhZ2VUaHJlYWQo
KTsKKyAgICAgICAgYm9vbCBzdGFydCgpOworICAgICAgICB2b2lkIHNjaGVkdWxlSW1wb3J0KFBh
c3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPik7CisgICAgICAgIHZvaWQgc2NoZWR1bGVTeW5jKFBh
c3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPik7CisgICAgICAgIHZvaWQgdGVybWluYXRlKCk7Cisg
ICAgICAgIHZvaWQgcGVyZm9ybVRlcm1pbmF0ZSgpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
U3RvcmFnZVRocmVhZCgpOworCisgICAgICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxTdG9yYWdl
VGhyZWFkPiopOworCisgICAgICAgIERlcXVlPFJlZlB0cjxTdG9yYWdlVGFzaz4gPiBtX3F1ZXVl
OworICAgICAgICBUaW1lcjxTdG9yYWdlVGhyZWFkPiBtX3RpbWVyOworICAgIH07CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFN0b3JhZ2VUaHJlYWRXaW5DRV9oCi0tIAox
LjcuNS40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128596</attachid>
            <date>2012-02-23 16:33:08 -0800</date>
            <delta_ts>2012-02-24 00:38:28 -0800</delta_ts>
            <desc>patch v.2</desc>
            <filename>0001-Rename-LocalStorageThread-to-StorageThread-and-Local.patch</filename>
            <type>text/plain</type>
            <size>67184</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSA3Y2U0NDRhNGU0ZDkzMDliNmRhNTEwYTk3NjJlODY1MDhiMGZjOTliIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IFRodSwgMjMgRmViIDIwMTIgMjE6MDA6MTAgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBSZW5hbWUgTG9jYWxTdG9yYWdlVGhyZWFkIHRvIFN0b3JhZ2VUaHJlYWQgYW5kCiBMb2NhbFN0
b3JhZ2VUYXNrIHRvIFN0b3JhZ2VUYXNrLgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc5MzU4CgpSZXZpc2lvbiA0NTEyNCBjb21tZW50ZWQgRklYTUUgdG8gcmVuYW1l
IHRoZXNlIGNsYXNzZXMuCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgODAgKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIFNvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICst
CiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MzggKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
ICAgICAgIHwgICAgOCArLQogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgfCAgIDMyICsrKy0tLQogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0
b3JhZ2VUYXNrLmNwcCAgICAgICAgfCAgMTA4IC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaCAgICAgICAgICB8ICAgNzMgLS0tLS0t
LS0tLS0tLQogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwICAg
ICAgfCAgIDk4IC0tLS0tLS0tLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2Nh
bFN0b3JhZ2VUaHJlYWQuaCAgICAgICAgfCAgIDY3IC0tLS0tLS0tLS0tLQogU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwICAgICAgfCAgIDEyICstCiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oICAgICAgICB8ICAgIDQgKy0KIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2suY3BwICAgICAgICAgICAgIHwgIDEwOCAr
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGFzay5o
ICAgICAgICAgICAgICAgfCAgIDcyICsrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZVRocmVhZC5jcHAgICAgICAgICAgIHwgICA5OCArKysrKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRocmVhZC5oICAgICAgICAgICAgIHwgICA2
NiArKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3Bw
ICAgICAgICAgIHwgICAxNiArKy0tCiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFj
a2VyLmggICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi9zdG9yYWdlL3dpbmNlL0xvY2FsU3RvcmFn
ZVRocmVhZFdpbkNFLmNwcCAgICAgIHwgICA4MyAtLS0tLS0tLS0tLS0tLS0KIC4uLi9zdG9yYWdl
L3dpbmNlL0xvY2FsU3RvcmFnZVRocmVhZFdpbkNFLmggICAgICAgIHwgICA1OCAtLS0tLS0tLS0t
LQogLi4uL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFkV2luQ0UuY3BwICAgfCAg
IDgzICsrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdl
VGhyZWFkV2luQ0UuaCAgfCAgIDU4ICsrKysrKysrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCA2Mzkg
aW5zZXJ0aW9ucygrKSwgNTYxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaAogZGVsZXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFkLmNwcAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFk
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUYXNr
LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRh
c2suaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRo
cmVhZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VUaHJlYWQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uvd2lu
Y2UvTG9jYWxTdG9yYWdlVGhyZWFkV2luQ0UuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFkV2lu
Q0UuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9T
dG9yYWdlVGhyZWFkV2luQ0UuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGFlZTIwOC4uMDdj
ZDlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0MDEsOCArMTQwMSw4IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL0lEQkZhY3RvcnkuY3BwCiAgICAgc3RvcmFnZS9JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAKICAgICBzdG9yYWdlL0lEQkZhY3RvcnlCYWNrZW5k
SW1wbC5jcHAKLSAgICBzdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suY3BwCi0gICAgc3RvcmFnZS9M
b2NhbFN0b3JhZ2VUaHJlYWQuY3BwCisgICAgc3RvcmFnZS9TdG9yYWdlVGFzay5jcHAKKyAgICBz
dG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCiAgICAgc3RvcmFnZS9PcmlnaW5RdW90YU1hbmFnZXIu
Y3BwCiAgICAgc3RvcmFnZS9PcmlnaW5Vc2FnZVJlY29yZC5jcHAKICAgICBzdG9yYWdlL1NRTEV4
Y2VwdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NTk5YjQwLi4xYTM0ZTllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsODMgQEAKKzIwMTItMDItMjMgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29t
cGFueTEwMC5uZXQ+CisKKyAgICAgICAgUmVuYW1lIExvY2FsU3RvcmFnZVRocmVhZCB0byBTdG9y
YWdlVGhyZWFkIGFuZCBMb2NhbFN0b3JhZ2VUYXNrIHRvIFN0b3JhZ2VUYXNrLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzNTgKKworICAgICAgICBS
ZXZpc2lvbiA0NTEyNCBjb21tZW50ZWQgRklYTUUgdG8gcmVuYW1lIHRoZXNlIGNsYXNzZXMuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHN0b3JhZ2UvTG9jYWxT
dG9yYWdlVGFzay5oOiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdlcjo6U3RvcmFnZVN5
bmNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VTeW5jTWFuYWdlcjo6c2NoZWR1
bGVJbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVN5bmNNYW5hZ2VyOjpzY2hlZHVs
ZVN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVN5bmNNYW5hZ2VyOjpzY2hlZHVsZURl
bGV0ZUVtcHR5RGF0YWJhc2UpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0b3JhZ2VTeW5jTWFuYWdlcik6Cisg
ICAgICAgICogc3RvcmFnZS9TdG9yYWdlVGFzay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suY3BwLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGFzazo6U3RvcmFnZVRhc2spOgorICAgICAgICAoV2Vi
Q29yZTo6U3RvcmFnZVRhc2s6On5TdG9yYWdlVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlVGFzazo6cGVyZm9ybVRhc2spOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRhc2suaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0b3JhZ2VUYXNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUYXNrOjpjcmVhdGVJbXBvcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3RvcmFnZVRhc2s6OmNyZWF0ZVN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRh
c2s6OmNyZWF0ZURlbGV0ZUVtcHR5RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRhc2s6OmNyZWF0ZU9yaWdpbklkZW50aWZpZXJzSW1wb3J0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUYXNrOjpjcmVhdGVTZXRPcmlnaW5EZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUYXNrOjpjcmVhdGVEZWxldGVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRhc2s6OmNyZWF0ZURlbGV0ZUFsbE9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZVRhc2s6OmNyZWF0ZVRlcm1pbmF0ZSk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlVGhy
ZWFkLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdl
VGhyZWFkLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRocmVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OlN0b3Jh
Z2VUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6flN0b3JhZ2VUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6c2NoZWR1bGVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhy
ZWFkOjpwZXJmb3JtVGVybWluYXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQu
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFk
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0b3JhZ2VUaHJlYWQpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFn
ZVRyYWNrZXI6OlN0b3JhZ2VUcmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyOjppbXBvcnRPcmlnaW5JZGVudGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdl
VHJhY2tlcjo6c2V0T3JpZ2luRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJh
Y2tlcjo6c2NoZWR1bGVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpk
ZWxldGVBbGxPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkZWxl
dGVPcmlnaW4pOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoU3RvcmFnZVRyYWNrZXIpOgorICAgICAgICAqIHN0b3JhZ2Uv
d2luY2UvU3RvcmFnZVRocmVhZFdpbkNFLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2Uvd2luY2UvTG9jYWxTdG9yYWdlVGhyZWFkV2luQ0UuY3BwLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpTdG9yYWdlVGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6On5TdG9yYWdlVGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUaHJlYWQ6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVh
ZDo6c2NoZWR1bGVJbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6c2No
ZWR1bGVTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpwZXJmb3JtVGVybWluYXRlKToKKyAg
ICAgICAgKiBzdG9yYWdlL3dpbmNlL1N0b3JhZ2VUaHJlYWRXaW5DRS5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5oLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTdG9yYWdlVGhyZWFkKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OmNyZWF0ZSk6CisKIDIwMTItMDItMjMgIERhbmEgSmFuc2Vu
cyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQdXNoIENDTGF5
ZXJJdGVyYXRvclBvc2l0aW9uIHN0cnVjdCBpbnRvIENDTGF5ZXJJdGVyYXRvciBjbGFzcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZhYTQ0ZTMuLmM3YzcyNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzg5NywxMCArMzg5NywxMCBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaCBcCiAJ
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0xvY2FsU3RvcmFnZVRhc2suaCBcCi0JU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0
b3JhZ2VUaHJlYWQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRo
cmVhZC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUYXNrLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGFzay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VUaHJlYWQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VU
aHJlYWQuaCBcCiAJU291cmNlL1dlYkNvcmUvc3RvcmFnZS9PcmlnaW5RdW90YU1hbmFnZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL09yaWdpblF1b3RhTWFuYWdlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL09yaWdpblVzYWdlUmVjb3JkLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRl
eCA5Y2NlMDM1Li40ZDUyOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEzMDEsOCArMTMwMSw4IEBAIFNP
VVJDRVMgKz0gXAogICAgIHN0b3JhZ2UvRGF0YWJhc2UuY3BwIFwKICAgICBzdG9yYWdlL0RhdGFi
YXNlQXV0aG9yaXplci5jcHAgXAogICAgIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcCBcCi0gICAg
c3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmNwcCBcCi0gICAgc3RvcmFnZS9Mb2NhbFN0b3JhZ2VU
aHJlYWQuY3BwIFwKKyAgICBzdG9yYWdlL1N0b3JhZ2VUYXNrLmNwcCBcCisgICAgc3RvcmFnZS9T
dG9yYWdlVGhyZWFkLmNwcCBcCiAgICAgc3RvcmFnZS9TdG9yYWdlLmNwcCBcCiAgICAgc3RvcmFn
ZS9TdG9yYWdlQXJlYUltcGwuY3BwIFwKICAgICBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAg
XApAQCAtMjUyMCw4ICsyNTIwLDggQEAgSEVBREVSUyArPSBcCiAgICAgc3RvcmFnZS9EYXRhYmFz
ZVRhc2suaCBcCiAgICAgc3RvcmFnZS9EYXRhYmFzZVRocmVhZC5oIFwKICAgICBzdG9yYWdlL0Rh
dGFiYXNlVHJhY2tlci5oIFwKLSAgICBzdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaCBcCi0gICAg
c3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuaCBcCisgICAgc3RvcmFnZS9TdG9yYWdlVGFzay5o
IFwKKyAgICBzdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaCBcCiAgICAgc3RvcmFnZS9PcmlnaW5RdW90
YU1hbmFnZXIuaCBcCiAgICAgc3RvcmFnZS9PcmlnaW5Vc2FnZVJlY29yZC5oIFwKICAgICBzdG9y
YWdlL1NRTENhbGxiYWNrV3JhcHBlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5ZGRmOTE1Li5k
YjA1YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00Njc5LDEwICs0Njc5LDEwIEBACiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2Uv
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCcsCi0gICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0
b3JhZ2VUYXNrLmNwcCcsCi0gICAgICAgICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmgn
LAotICAgICAgICAgICAgJ3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCcsCi0gICAgICAg
ICAgICAnc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuaCcsCisgICAgICAgICAgICAnc3RvcmFn
ZS9TdG9yYWdlVGFzay5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvU3RvcmFnZVRhc2suaCcs
CisgICAgICAgICAgICAnc3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcCcsCisgICAgICAgICAgICAn
c3RvcmFnZS9TdG9yYWdlVGhyZWFkLmgnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvT3JpZ2luUXVv
dGFNYW5hZ2VyLmNwcCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9PcmlnaW5RdW90YU1hbmFnZXIu
aCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9PcmlnaW5Vc2FnZVJlY29yZC5jcHAnLApAQCAtNDcz
Nyw4ICs0NzM3LDggQEAKICAgICAgICAgICAgICdzdG9yYWdlL2Nocm9taXVtL1NRTFRyYW5zYWN0
aW9uQ2xpZW50Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL3dpbmNlL0RhdGFi
YXNlVGhyZWFkV2luQ0UuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL3dpbmNlL0RhdGFiYXNl
VGhyZWFkV2luQ0UuaCcsCi0gICAgICAgICAgICAnc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VU
aHJlYWRXaW5DRS5jcHAnLAotICAgICAgICAgICAgJ3N0b3JhZ2Uvd2luY2UvTG9jYWxTdG9yYWdl
VGhyZWFkV2luQ0UuaCcsCisgICAgICAgICAgICAnc3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFk
V2luQ0UuY3BwJywKKyAgICAgICAgICAgICdzdG9yYWdlL3dpbmNlL1N0b3JhZ2VUaHJlYWRXaW5D
RS5oJywKICAgICAgICAgICAgICd3ZWJhdWRpby9BdWRpb0Jhc2ljUHJvY2Vzc29yTm9kZS5jcHAn
LAogICAgICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmgnLAogICAg
ICAgICAgICAgJ3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRl
eCBkZGJhMWVjLi45NTJjMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTQ0NSwyMyArNDQ1LDIz
IEBAIF9fWk43V2ViQ29yZTE2U1FMaXRlRmlsZVN5c3RlbTI0ZW5zdXJlRGF0YWJhc2VGaWxlRXhp
c3RzRVJLTjNXVEY2U3RyaW5nRWIKIF9fWk43V2ViQ29yZTE1RGF0YWJhc2VUcmFja2VyN3RyYWNr
ZXJFdgogX19aTjdXZWJDb3JlMTVEYXRhYmFzZVRyYWNrZXI5c2V0Q2xpZW50RVBOU18yMURhdGFi
YXNlVHJhY2tlckNsaWVudEUKIF9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXIxN2luaXRpYWxp
emVUcmFja2VyRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJl
YWQ2Y3JlYXRlRXYKK19fWk43V2ViQ29yZTEzU3RvcmFnZVRocmVhZDZjcmVhdGVFdgogX19aTjdX
ZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjIzc2V0U3RvcmFnZURpcmVjdG9yeVBhdGhFUktOM1dURjZT
dHJpbmdFCi1fX1pON1dlYkNvcmUxOExvY2FsU3RvcmFnZVRocmVhZDVzdGFydEV2CitfX1pON1dl
YkNvcmUxM1N0b3JhZ2VUaHJlYWQ1c3RhcnRFdgogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tl
cjIzaW1wb3J0T3JpZ2luSWRlbnRpZmllcnNFdgotX19aTjdXZWJDb3JlMTZMb2NhbFN0b3JhZ2VU
YXNrQzFFTlMwXzRUeXBlRQotX19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJlYWQxMnNjaGVk
dWxlVGFza0VOM1dURjEwUGFzc093blB0cklOU18xNkxvY2FsU3RvcmFnZVRhc2tFRUUKLV9fWk4z
V1RGNURlcXVlSVBON1dlYkNvcmUxNkxvY2FsU3RvcmFnZVRhc2tFTG0wRUUxNGV4cGFuZENhcGFj
aXR5RXYKK19fWk43V2ViQ29yZTExU3RvcmFnZVRhc2tDMUVOUzBfNFR5cGVFCitfX1pON1dlYkNv
cmUxM1N0b3JhZ2VUaHJlYWQxMnNjaGVkdWxlVGFza0VOM1dURjEwUGFzc093blB0cklOU18xMVN0
b3JhZ2VUYXNrRUVFCitfX1pOM1dURjVEZXF1ZUlQTjdXZWJDb3JlMTFTdG9yYWdlVGFza0VMbTBF
RTE0ZXhwYW5kQ2FwYWNpdHlFdgogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjd0cmFja2Vy
RXYKIF9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXI5c2V0Q2xpZW50RVBOU18yMFN0b3JhZ2VU
cmFja2VyQ2xpZW50RQogX19aTjdXZWJDb3JlMTJjYWNoZVN0b3JhZ2VFdgotX19aTjdXZWJDb3Jl
MThMb2NhbFN0b3JhZ2VUaHJlYWQyNHRocmVhZEVudHJ5UG9pbnRDYWxsYmFja0VQdgorX19aTjdX
ZWJDb3JlMTNTdG9yYWdlVGhyZWFkMjR0aHJlYWRFbnRyeVBvaW50Q2FsbGJhY2tFUHYKIF9fWk43
V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxN3NldENhY2hlRGlyZWN0b3J5RVJLTjNX
VEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJlYWQxNnRocmVhZEVudHJ5
UG9pbnRFdgotX19aTjNXVEYxMk1lc3NhZ2VRdWV1ZUlON1dlYkNvcmUxNkxvY2FsU3RvcmFnZVRh
c2tFRTE0d2FpdEZvck1lc3NhZ2VFdgotX19aTjNXVEYxMk1lc3NhZ2VRdWV1ZUlON1dlYkNvcmUx
NkxvY2FsU3RvcmFnZVRhc2tFRTE5YWx3YXlzVHJ1ZVByZWRpY2F0ZUVQUzJfCitfX1pON1dlYkNv
cmUxM1N0b3JhZ2VUaHJlYWQxNnRocmVhZEVudHJ5UG9pbnRFdgorX19aTjNXVEYxMk1lc3NhZ2VR
dWV1ZUlON1dlYkNvcmUxMVN0b3JhZ2VUYXNrRUUxNHdhaXRGb3JNZXNzYWdlRXYKK19fWk4zV1RG
MTJNZXNzYWdlUXVldWVJTjdXZWJDb3JlMTFTdG9yYWdlVGFza0VFMTlhbHdheXNUcnVlUHJlZGlj
YXRlRVBTMl8KIF9fWk43V2ViQ29yZTIxc2V0UGxhdGZvcm1TdHJhdGVnaWVzRVBOU18xOFBsYXRm
b3JtU3RyYXRlZ2llc0UKLV9fWk43V2ViQ29yZTE2TG9jYWxTdG9yYWdlVGFzazExcGVyZm9ybVRh
c2tFdgorX19aTjdXZWJDb3JlMTFTdG9yYWdlVGFzazExcGVyZm9ybVRhc2tFdgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjlzZXREZWZhdWx0TWluRE9NVGltZXJJbnRlcnZhbEVkCiBfX1pON1dlYkNv
cmUxNFN0b3JhZ2VUcmFja2VyMjdzeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnNFdgogX19aTjdX
ZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgpAQCAtNDcxLDcgKzQ3MSw3IEBAIF9fWk43V2Vi
Q29yZTEzbGlzdERpcmVjdG9yeUVSS04zV1RGNlN0cmluZ0VTM18KIF9fWk43V2ViQ29yZTRQYWdl
QzFFUk5TMF8xMVBhZ2VDbGllbnRzRQogX19aTjNXVEY2VmVjdG9ySU5TXzZTdHJpbmdFTG0wRUVh
U0VSS1MyXwogX19aTjdXZWJDb3JlNFBhZ2VDMkVSTlMwXzExUGFnZUNsaWVudHNFCi1fX1pON1dl
YkNvcmUxNkxvY2FsU3RvcmFnZVRhc2tEMUV2CitfX1pON1dlYkNvcmUxMVN0b3JhZ2VUYXNrRDFF
dgogX19aTjdXZWJDb3JlNkNocm9tZUMxRVBOU180UGFnZUVQTlNfMTJDaHJvbWVDbGllbnRFCiBf
X1pON1dlYkNvcmUxOURyYWdDYXJldENvbnRyb2xsZXJDMUV2CiBfX1pON1dlYkNvcmUxNERyYWdD
b250cm9sbGVyQzFFUE5TXzRQYWdlRVBOU18xMERyYWdDbGllbnRFCkBAIC0xOTk4NCw3ICsxOTk4
NCw3IEBAIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMThkYXRhYmFzZUlkZW50aWZpZXJF
dgogX19aTjdXZWJDb3JlMTdlbmNvZGVGb3JGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE1U3RvcmFnZUFyZWFTeW5jNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOU18xOFN0
b3JhZ2VTeW5jTWFuYWdlckVFRU5TMl9JTlNfMTVTdG9yYWdlQXJlYUltcGxFRUVSS05TMV82U3Ry
aW5nRQogX19aTjdXZWJDb3JlMThTdG9yYWdlU3luY01hbmFnZXIxNHNjaGVkdWxlSW1wb3J0RU4z
V1RGMTBQYXNzUmVmUHRySU5TXzE1U3RvcmFnZUFyZWFTeW5jRUVFCi1fX1pON1dlYkNvcmUxNkxv
Y2FsU3RvcmFnZVRhc2tDMUVOUzBfNFR5cGVFUE5TXzE1U3RvcmFnZUFyZWFTeW5jRQorX19aTjdX
ZWJDb3JlMTFTdG9yYWdlVGFza0MxRU5TMF80VHlwZUVQTlNfMTVTdG9yYWdlQXJlYVN5bmNFCiBf
X1pON1dlYkNvcmUxNVN0b3JhZ2VBcmVhU3luYzEzcGVyZm9ybUltcG9ydEV2CiBfX1pON1dlYkNv
cmUxNVN0b3JhZ2VBcmVhU3luYzEyb3BlbkRhdGFiYXNlRU5TMF8yMU9wZW5EYXRhYmFzZVBhcmFt
VHlwZUUKIF9fWk43V2ViQ29yZTE4U3RvcmFnZVN5bmNNYW5hZ2VyMjBmdWxsRGF0YWJhc2VGaWxl
bmFtZUVSS04zV1RGNlN0cmluZ0UKQEAgLTI1ODMxLDcgKzI1ODMxLDcgQEAgX19aTjdXZWJDb3Jl
MTVTdG9yYWdlQXJlYVN5bmMxMXBlcmZvcm1TeW5jRXYKIF9fWk43V2ViQ29yZTE1U3RvcmFnZUFy
ZWFTeW5jNHN5bmNFYlJLTjNXVEY3SGFzaE1hcElOUzFfNlN0cmluZ0VTM19OUzFfMTBTdHJpbmdI
YXNoRU5TMV8xMEhhc2hUcmFpdHNJUzNfRUVTNl9FRQogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJh
Y2tlcjIwY2FuY2VsRGVsZXRpbmdPcmlnaW5FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUx
NFN0b3JhZ2VUcmFja2VyMTZzZXRPcmlnaW5EZXRhaWxzRVJLTjNXVEY2U3RyaW5nRVM0XwotX19a
TjdXZWJDb3JlMTZMb2NhbFN0b3JhZ2VUYXNrQzFFTlMwXzRUeXBlRVJLTjNXVEY2U3RyaW5nRVM1
XworX19aTjdXZWJDb3JlMTFTdG9yYWdlVGFza0MxRU5TMF80VHlwZUVSS04zV1RGNlN0cmluZ0VT
NV8KIF9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXIxMnNjaGVkdWxlVGFza0VQdgogX19aTjdX
ZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjIwc3luY1NldE9yaWdpbkRldGFpbHNFUktOM1dURjZTdHJp
bmdFUzRfCiBfX1pON1dlYkNvcmUyNnNldEpTRE9NV2luZG93T25oYXNoY2hhbmdlRVBOM0pTQzlF
eGVjU3RhdGVFUE5TMF84SlNPYmplY3RFTlMwXzdKU1ZhbHVlRQpAQCAtMjc0MTksMTIgKzI3NDE5
LDEyIEBAIF9fWk43V2ViQ29yZTE1U3RvcmFnZUFyZWFJbXBsNWNsb3NlRXYKIF9fWk43V2ViQ29y
ZTE1U3RvcmFnZUFyZWFTeW5jMTdzY2hlZHVsZUZpbmFsU3luY0V2CiBfX1pON1dlYkNvcmUxOFN0
b3JhZ2VTeW5jTWFuYWdlcjI3c2NoZWR1bGVEZWxldGVFbXB0eURhdGFiYXNlRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzE1U3RvcmFnZUFyZWFTeW5jRUVFCiBfX1pON1dlYkNvcmUxOFN0b3JhZ2VTeW5j
TWFuYWdlcjVjbG9zZUV2Ci1fX1pON1dlYkNvcmUxOExvY2FsU3RvcmFnZVRocmVhZDl0ZXJtaW5h
dGVFdgotX19aTjdXZWJDb3JlMTZMb2NhbFN0b3JhZ2VUYXNrQzFFTlMwXzRUeXBlRVBOU18xOExv
Y2FsU3RvcmFnZVRocmVhZEUKK19fWk43V2ViQ29yZTEzU3RvcmFnZVRocmVhZDl0ZXJtaW5hdGVF
dgorX19aTjdXZWJDb3JlMTFTdG9yYWdlVGFza0MxRU5TMF80VHlwZUVQTlNfMTNTdG9yYWdlVGhy
ZWFkRQogX19aTjdXZWJDb3JlMTVTdG9yYWdlQXJlYVN5bmMxOWRlbGV0ZUVtcHR5RGF0YWJhc2VF
dgotX19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJlYWQxNnBlcmZvcm1UZXJtaW5hdGVFdgot
X19aTjdXZWJDb3JlMThMb2NhbFN0b3JhZ2VUaHJlYWREMUV2Ci1fX1pOM1dURjEyTWVzc2FnZVF1
ZXVlSU43V2ViQ29yZTE2TG9jYWxTdG9yYWdlVGFza0VFRDFFdgorX19aTjdXZWJDb3JlMTNTdG9y
YWdlVGhyZWFkMTZwZXJmb3JtVGVybWluYXRlRXYKK19fWk43V2ViQ29yZTEzU3RvcmFnZVRocmVh
ZEQxRXYKK19fWk4zV1RGMTJNZXNzYWdlUXVldWVJTjdXZWJDb3JlMTFTdG9yYWdlVGFza0VFRDFF
dgogX19aTjdXZWJDb3JlMjhJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsRDJFdgogX19aTjdX
ZWJDb3JlMjFJbnNwZWN0b3JGcm9udGVuZEhvc3QxNmRpc2Nvbm5lY3RDbGllbnRFdgogX19aTjdX
ZWJDb3JlMjNKU0luc3BlY3RvckZyb250ZW5kSG9zdEQxRXYKQEAgLTI4NjgyLDcgKzI4NjgyLDcg
QEAgX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjEyZGVsZXRlT3JpZ2luRVBOU18xNFNlY3Vy
aXR5T3JpZ2luRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDI2Y2xlYXJMb2NhbFN0b3JhZ2VGb3JP
cmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUyMFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsMjJjbGVhck9yaWdpbkZvckRlbGV0aW9uRVBOU18xNFNlY3VyaXR5T3JpZ2luRQogX19a
TkszV1RGN0hhc2hNYXBJTlNfNlJlZlB0cklON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luRUVFTlMx
X0lOUzJfMTVTdG9yYWdlQXJlYUltcGxFRUVOUzJfMThTZWN1cml0eU9yaWdpbkhhc2hFTlNfMTBI
YXNoVHJhaXRzSVM0X0VFTlM4X0lTNl9FRUUzZ2V0RVBTM18KLV9fWk43V2ViQ29yZTE2TG9jYWxT
dG9yYWdlVGFza0MxRU5TMF80VHlwZUVSS04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTExU3Rv
cmFnZVRhc2tDMUVOUzBfNFR5cGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFN0b3Jh
Z2VUcmFja2VyMTZzeW5jRGVsZXRlT3JpZ2luRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MTRTdG9yYWdlVHJhY2tlcjIxZGF0YWJhc2VQYXRoRm9yT3JpZ2luRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjE4ZGlza1VzYWdlRm9yT3JpZ2luRVBOU18xNFNl
Y3VyaXR5T3JpZ2luRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCAxZTdjNmYwLi5iZTQwYmEzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzA5MjYsMTkgKzcwOTI2LDE5IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxT
dG9yYWdlVGFzay5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VUYXNr
LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
c3RvcmFnZVxMb2NhbFN0b3JhZ2VUYXNrLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdl
XFN0b3JhZ2VUYXNrLmgiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCIKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHN0b3JhZ2VcU3RvcmFnZVRocmVhZC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcTG9jYWxTdG9yYWdlVGhyZWFkLmgi
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXFN0b3JhZ2VUaHJlYWQuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhMzEzMjcuLmE5OTAwYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzMsMTAg
KzE0NzMsMTAgQEAKIAkJNTExMjI0NzgxMENGQjhGNDAwODA5OUQ3IC8qIFdvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMTIyNDc3MTBDRkI4RjQwMDgwOTlENyAvKiBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTUxMTIyNDdBMTBDRkI4RkYwMDgwOTlENyAv
KiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjI0NzkxMENGQjhGRjAwODA5OUQ3IC8qIFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggKi87IH07CiAJCTUxMTZEOTc3MENGMTc3
QkQwMEMyQjg0RCAvKiBEYXRhYmFzZURldGFpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTZEOTc1MENGMTc3QkQwMEMyQjg0RCAvKiBEYXRhYmFz
ZURldGFpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQk1MTFGMjMxNzBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxMzBEQzE2
MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5jcHAgKi87IH07Ci0JCTUxMUYyMzE4MERD
MTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxNDBEQzE2MERBMDA0RjAwMzIgLyogTG9j
YWxTdG9yYWdlVGFzay5oICovOyB9OwotCQk1MTFGMjMxOTBEQzE2MERBMDA0RjAwMzIgLyogTG9j
YWxTdG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQu
Y3BwICovOyB9OwotCQk1MTFGMjMxQTBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhy
ZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFG
MjMxNjBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmggKi87IH07CisJCTUx
MUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxMzBEQzE2MERBMDA0RjAwMzIg
LyogU3RvcmFnZVRhc2suY3BwICovOyB9OworCQk1MTFGMjMxODBEQzE2MERBMDA0RjAwMzIgLyog
U3RvcmFnZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5oICovOyB9OworCQk1
MTFGMjMxOTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxNTBEQzE2MERBMDA0RjAw
MzIgLyogU3RvcmFnZVRocmVhZC5jcHAgKi87IH07CisJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAz
MiAvKiBTdG9yYWdlVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTFGMjMxNjBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5oICov
OyB9OwogCQk1MTI2RTZCQjBBMkUzQjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjZFNkI5MEEyRTNC
MTIwMDVDMjlGQSAvKiBJY29uRGF0YWJhc2UuY3BwICovOyB9OwogCQk1MTI2RTZCQzBBMkUzQjEy
MDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTI2RTZCQTBBMkUzQjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEy
REQ4RTMwRDkxRTJCNDAwMEY4OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkREOEUyMEQ5MUUyQjQwMDBGODlF
RSAvKiBTaGFyZWRCdWZmZXJDRi5jcHAgKi87IH07CkBAIC04MzQzLDEwICs4MzQzLDEwIEBACiAJ
CTUxMTIyNDc3MTBDRkI4RjQwMDgwOTlENyAvKiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMTIyNDc5MTBDRkI4RkYwMDgwOTlENyAvKiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTE2RDk3
NTBDRjE3N0JEMDBDMkI4NEQgLyogRGF0YWJhc2VEZXRhaWxzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlRGV0YWlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1MTFGMjMxMzBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VUYXNrLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExRjIzMTQwREMxNjBEQTAwNEYwMDMy
IC8qIExvY2FsU3RvcmFnZVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9jYWxTdG9yYWdlVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTFGMjMx
NTBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZVRocmVhZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMUYyMzE2MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0
b3JhZ2VUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxTdG9y
YWdlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMUYyMzEzMERDMTYw
REEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdG9yYWdlVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTFGMjMxNTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlVGhyZWFkLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExRjIzMTYwREMxNjBEQTAwNEYwMDMyIC8qIFN0
b3JhZ2VUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVRo
cmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI2RTZCOTBBMkUzQjEyMDA1
QzI5RkEgLyogSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTI2RTZCQTBBMkUzQjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJY29uRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEyREQ4RTIwRDkxRTJCNDAwMEY4OUVFIC8qIFNoYXJlZEJ1ZmZlckNGLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZEJ1ZmZlckNGLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzOTU2LDEwICsxMzk1NiwxMCBAQAogCQkJ
CUI2NTY2MjY4MTIwQjExNUEwMDZFQTg1QyAvKiBJREJUcmFuc2FjdGlvbi5oICovLAogCQkJCUI2
NTY2MjY5MTIwQjExNUEwMDZFQTg1QyAvKiBJREJUcmFuc2FjdGlvbi5pZGwgKi8sCiAJCQkJQjY1
NjYyNkQxMjBCMTE2QjAwNkVBODVDIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5o
ICovLAotCQkJCTUxMUYyMzEzMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNw
cCAqLywKLQkJCQk1MTFGMjMxNDBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5o
ICovLAotCQkJCTUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQu
Y3BwICovLAotCQkJCTUxMUYyMzE2MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJl
YWQuaCAqLywKKwkJCQk1MTFGMjMxMzBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suY3Bw
ICovLAorCQkJCTUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5oICovLAor
CQkJCTUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmNwcCAqLywKKwkJ
CQk1MTFGMjMxNjBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5oICovLAogCQkJCTUx
QTkyNjc4MEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5RdW90YU1hbmFnZXIuY3BwICovLAogCQkJ
CTUxQTkyNjc5MEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5RdW90YU1hbmFnZXIuaCAqLywKIAkJ
CQk1MUE5MjY3QTBENTNGMDU3MDA2M0VDQzIgLyogT3JpZ2luVXNhZ2VSZWNvcmQuY3BwICovLApA
QCAtMjMyNDgsOCArMjMyNDgsOCBAQAogCQkJCUE1NzMyQjBEMTM2QTE2QzQwMDVDOEQ3QyAvKiBM
b2NhbGl6ZWREYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTE0MkM2OTEyM0YxMkIwMDBGNUJE
NEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5QkQ0
MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEx
RjIzMTgwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCBpbiBIZWFkZXJzICov
LAotCQkJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuaCBp
biBIZWFkZXJzICovLAorCQkJCTUxMUYyMzE4MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFz
ay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExRjIzMUEwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3Jh
Z2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTFDNDFCMEQ5ODI5ODAwMDNCMDJGMiAv
KiBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQx
IC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDM5MTJCMDI2NzYwMEMxQTM1
OSAvKiBMb3dQYXNzMkZpbHRlck5vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjY0MTMsOCArMjY0
MTMsOCBAQAogCQkJCUY1Q0M0MkRDMTJGODAxQ0EwMEQ1RjdFMyAvKiBMb2NhbGl6ZWROdW1iZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDQ2RTFBQzEyMDhBOUZFMDBCQTJDRjcgLyogTG9j
YWxpemVkU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI1QjUyQTEzMUM2RDM5MDAx
ODBFMTAgLyogTG9jYWxpemVkU3RyaW5nc01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxMUYy
MzE3MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNTExRjIzMTcwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VU
YXNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBT
dG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTFDNDFDMEQ5ODI5ODEwMDNC
MDJGMiAvKiBMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODIzOUUwMDA5QjNDRjhB
MDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDAyNjQ1RTBBRkRD
MTlCMDA1OTE5RTIgLyogTG9nZ2luZ01hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUYXNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM5YjE2YjQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2Nh
bFN0b3JhZ2VUYXNrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkxvY2FsU3RvcmFnZVRhc2suaCIKLQotI2luY2x1ZGUgIkxvY2FsU3RvcmFn
ZVRocmVhZC5oIgotI2luY2x1ZGUgIlN0b3JhZ2VBcmVhU3luYy5oIgotI2luY2x1ZGUgIlN0b3Jh
Z2VUcmFja2VyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTG9jYWxTdG9yYWdlVGFzazo6
TG9jYWxTdG9yYWdlVGFzayhUeXBlIHR5cGUsIFN0b3JhZ2VBcmVhU3luYyogYXJlYSkKLSAgICA6
IG1fdHlwZSh0eXBlKQotICAgICwgbV9hcmVhKGFyZWEpCi0gICAgLCBtX3RocmVhZCgwKQotewot
ICAgIEFTU0VSVChtX2FyZWEpOwotICAgIEFTU0VSVChtX3R5cGUgPT0gQXJlYUltcG9ydCB8fCBt
X3R5cGUgPT0gQXJlYVN5bmMgfHwgbV90eXBlID09IERlbGV0ZUVtcHR5RGF0YWJhc2UpOwotfQot
Ci1Mb2NhbFN0b3JhZ2VUYXNrOjpMb2NhbFN0b3JhZ2VUYXNrKFR5cGUgdHlwZSwgTG9jYWxTdG9y
YWdlVGhyZWFkKiB0aHJlYWQpCi0gICAgOiBtX3R5cGUodHlwZSkKLSAgICAsIG1fYXJlYSgwKQot
ICAgICwgbV90aHJlYWQodGhyZWFkKQotewotICAgIEFTU0VSVChtX3RocmVhZCk7Ci0gICAgQVNT
RVJUKG1fdHlwZSA9PSBUZXJtaW5hdGVUaHJlYWQpOwotfQotICAgIAotTG9jYWxTdG9yYWdlVGFz
azo6TG9jYWxTdG9yYWdlVGFzayhUeXBlIHR5cGUpCi0gICAgOiBtX3R5cGUodHlwZSkKLXsKLSAg
ICBBU1NFUlQobV90eXBlID09IEltcG9ydE9yaWdpbnMgfHwgbV90eXBlID09IERlbGV0ZUFsbE9y
aWdpbnMpOwotfQotICAgIAotTG9jYWxTdG9yYWdlVGFzazo6TG9jYWxTdG9yYWdlVGFzayhUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikKLSAgICA6IG1fdHlwZSh0eXBl
KQotICAgICwgbV9vcmlnaW5JZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpCi17Ci0gICAgQVNT
RVJUKG1fdHlwZSA9PSBEZWxldGVPcmlnaW4pOwotfQotCi1Mb2NhbFN0b3JhZ2VUYXNrOjpMb2Nh
bFN0b3JhZ2VUYXNrKFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlRmlsZW5hbWUpCi0gICAgOiBtX3R5cGUodHlwZSkKLSAgICAs
IG1fb3JpZ2luSWRlbnRpZmllcihvcmlnaW5JZGVudGlmaWVyKQotICAgICwgbV9kYXRhYmFzZUZp
bGVuYW1lKGRhdGFiYXNlRmlsZW5hbWUpCi17Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSBTZXRPcmln
aW5EZXRhaWxzKTsKLX0KLQotTG9jYWxTdG9yYWdlVGFzazo6fkxvY2FsU3RvcmFnZVRhc2soKQot
ewotfQotCi12b2lkIExvY2FsU3RvcmFnZVRhc2s6OnBlcmZvcm1UYXNrKCkKLXsKLSAgICBzd2l0
Y2ggKG1fdHlwZSkgewotICAgICAgICBjYXNlIEFyZWFJbXBvcnQ6Ci0gICAgICAgICAgICBtX2Fy
ZWEtPnBlcmZvcm1JbXBvcnQoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEFy
ZWFTeW5jOgotICAgICAgICAgICAgbV9hcmVhLT5wZXJmb3JtU3luYygpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgU2V0T3JpZ2luRGV0YWlsczoKLSAgICAgICAgICAgIFN0b3Jh
Z2VUcmFja2VyOjp0cmFja2VyKCkuc3luY1NldE9yaWdpbkRldGFpbHMobV9vcmlnaW5JZGVudGlm
aWVyLCBtX2RhdGFiYXNlRmlsZW5hbWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgSW1wb3J0T3JpZ2luczoKLSAgICAgICAgICAgIFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCku
c3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBEZWxldGVBbGxPcmlnaW5zOgotICAgICAgICAgICAgU3RvcmFnZVRyYWNrZXI6OnRy
YWNrZXIoKS5zeW5jRGVsZXRlQWxsT3JpZ2lucygpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgRGVsZXRlT3JpZ2luOgotICAgICAgICAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNr
ZXIoKS5zeW5jRGVsZXRlT3JpZ2luKG1fb3JpZ2luSWRlbnRpZmllcik7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBEZWxldGVFbXB0eURhdGFiYXNlOgotICAgICAgICAgICAgbV9h
cmVhLT5kZWxldGVFbXB0eURhdGFiYXNlKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBUZXJtaW5hdGVUaHJlYWQ6Ci0gICAgICAgICAgICBtX3RocmVhZC0+cGVyZm9ybVRlcm1p
bmF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRhc2suaCBiL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGFzay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzZThiNmIxLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9y
YWdlVGFzay5oCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTG9jYWxTdG9yYWdlVGFza19o
Ci0jZGVmaW5lIExvY2FsU3RvcmFnZVRhc2tfaAotCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOwot
ICAgIGNsYXNzIExvY2FsU3RvcmFnZVRocmVhZDsKLQotICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhp
cyBjbGFzcyB0byBTdG9yYWdlVGFzawotICAgIGNsYXNzIExvY2FsU3RvcmFnZVRhc2sgewotICAg
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NhbFN0b3JhZ2VUYXNrKTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICBlbnVtIFR5cGUgeyBBcmVhSW1wb3J0
LCBBcmVhU3luYywgRGVsZXRlRW1wdHlEYXRhYmFzZSwgU2V0T3JpZ2luRGV0YWlscywgSW1wb3J0
T3JpZ2lucywgRGVsZXRlQWxsT3JpZ2lucywgRGVsZXRlT3JpZ2luLCBUZXJtaW5hdGVUaHJlYWQg
fTsKLQotICAgICAgICB+TG9jYWxTdG9yYWdlVGFzaygpOwotCi0gICAgICAgIHN0YXRpYyBQYXNz
T3duUHRyPExvY2FsU3RvcmFnZVRhc2s+IGNyZWF0ZUltcG9ydChTdG9yYWdlQXJlYVN5bmMqIGFy
ZWEpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBMb2NhbFN0b3JhZ2VUYXNrKEFyZWFJbXBvcnQsIGFy
ZWEpKTsgfQotICAgICAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiBjcmVh
dGVTeW5jKFN0b3JhZ2VBcmVhU3luYyogYXJlYSkgeyByZXR1cm4gYWRvcHRQdHIobmV3IExvY2Fs
U3RvcmFnZVRhc2soQXJlYVN5bmMsIGFyZWEpKTsgfQotICAgICAgICBzdGF0aWMgUGFzc093blB0
cjxMb2NhbFN0b3JhZ2VUYXNrPiBjcmVhdGVEZWxldGVFbXB0eURhdGFiYXNlKFN0b3JhZ2VBcmVh
U3luYyogYXJlYSkgeyByZXR1cm4gYWRvcHRQdHIobmV3IExvY2FsU3RvcmFnZVRhc2soRGVsZXRl
RW1wdHlEYXRhYmFzZSwgYXJlYSkpOyB9Ci0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2Fs
U3RvcmFnZVRhc2s+IGNyZWF0ZU9yaWdpbklkZW50aWZpZXJzSW1wb3J0KCkgeyByZXR1cm4gYWRv
cHRQdHIobmV3IExvY2FsU3RvcmFnZVRhc2soSW1wb3J0T3JpZ2lucykpOyB9Ci0gICAgICAgIHN0
YXRpYyBQYXNzT3duUHRyPExvY2FsU3RvcmFnZVRhc2s+IGNyZWF0ZVNldE9yaWdpbkRldGFpbHMo
Y29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRmls
ZW5hbWUpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBMb2NhbFN0b3JhZ2VUYXNrKFNldE9yaWdpbkRl
dGFpbHMsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlRmlsZW5hbWUpKTsgfQotICAgICAgICBz
dGF0aWMgUGFzc093blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiBjcmVhdGVEZWxldGVPcmlnaW4oY29u
c3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgTG9jYWxT
dG9yYWdlVGFzayhEZWxldGVPcmlnaW4sIG9yaWdpbklkZW50aWZpZXIpKTsgfQotICAgICAgICBz
dGF0aWMgUGFzc093blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiBjcmVhdGVEZWxldGVBbGxPcmlnaW5z
KCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IExvY2FsU3RvcmFnZVRhc2soRGVsZXRlQWxsT3JpZ2lu
cykpOyB9Ci0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2FsU3RvcmFnZVRhc2s+IGNyZWF0
ZVRlcm1pbmF0ZShMb2NhbFN0b3JhZ2VUaHJlYWQqIHRocmVhZCkgeyByZXR1cm4gYWRvcHRQdHIo
bmV3IExvY2FsU3RvcmFnZVRhc2soVGVybWluYXRlVGhyZWFkLCB0aHJlYWQpKTsgfQotCi0gICAg
ICAgIHZvaWQgcGVyZm9ybVRhc2soKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIExvY2FsU3Rv
cmFnZVRhc2soVHlwZSwgU3RvcmFnZUFyZWFTeW5jKik7Ci0gICAgICAgIExvY2FsU3RvcmFnZVRh
c2soVHlwZSwgTG9jYWxTdG9yYWdlVGhyZWFkKik7Ci0gICAgICAgIExvY2FsU3RvcmFnZVRhc2so
VHlwZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKLSAgICAgICAgTG9jYWxTdG9y
YWdlVGFzayhUeXBlLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VGaWxlbmFtZSk7Ci0gICAgICAgIExvY2FsU3RvcmFnZVRhc2soVHlwZSk7Ci0K
LSAgICAgICAgVHlwZSBtX3R5cGU7Ci0gICAgICAgIFN0b3JhZ2VBcmVhU3luYyogbV9hcmVhOwot
ICAgICAgICBMb2NhbFN0b3JhZ2VUaHJlYWQqIG1fdGhyZWFkOwotICAgICAgICBTdHJpbmcgbV9v
cmlnaW5JZGVudGlmaWVyOwotICAgICAgICBTdHJpbmcgbV9kYXRhYmFzZUZpbGVuYW1lOwotICAg
IH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIExvY2FsU3RvcmFnZVRh
c2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOGU0NGI2Li4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvTG9jYWxTdG9yYWdlVGhyZWFkLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTG9jYWxTdG9yYWdlVGhyZWFkLmgi
Ci0KLSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VUYXNrLmgiCi0jaW5jbHVkZSAiU3RvcmFnZUFyZWFT
eW5jLmgiCi0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1QYXNzT3duUHRyPExvY2FsU3RvcmFnZVRocmVhZD4gTG9jYWxTdG9yYWdlVGhyZWFkOjpj
cmVhdGUoKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTG9jYWxTdG9yYWdlVGhyZWFkKTsK
LX0KLQotTG9jYWxTdG9yYWdlVGhyZWFkOjpMb2NhbFN0b3JhZ2VUaHJlYWQoKQotICAgIDogbV90
aHJlYWRJRCgwKQotewotfQotCi1Mb2NhbFN0b3JhZ2VUaHJlYWQ6On5Mb2NhbFN0b3JhZ2VUaHJl
YWQoKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKCFtX3RocmVh
ZElEKTsKLX0KLQotYm9vbCBMb2NhbFN0b3JhZ2VUaHJlYWQ6OnN0YXJ0KCkKLXsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmICghbV90aHJlYWRJRCkKLSAgICAgICAgbV90aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZChMb2NhbFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRD
YWxsYmFjaywgdGhpcywgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIpOwotICAgIHJldHVybiBtX3Ro
cmVhZElEOwotfQotCi12b2lkIExvY2FsU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENh
bGxiYWNrKHZvaWQqIHRocmVhZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxMb2NhbFN0b3JhZ2VUaHJl
YWQqPih0aHJlYWQpLT50aHJlYWRFbnRyeVBvaW50KCk7Ci19Ci0KLXZvaWQgTG9jYWxTdG9yYWdl
VGhyZWFkOjp0aHJlYWRFbnRyeVBvaW50KCkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKLSAgICB3aGlsZSAoT3duUHRyPExvY2FsU3RvcmFnZVRhc2s+IHRhc2sgPSBtX3F1ZXVlLndh
aXRGb3JNZXNzYWdlKCkpCi0gICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7Ci19Ci0KLXZvaWQg
TG9jYWxTdG9yYWdlVGhyZWFkOjpzY2hlZHVsZVRhc2soUGFzc093blB0cjxMb2NhbFN0b3JhZ2VU
YXNrPiB0YXNrKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKCFt
X3F1ZXVlLmtpbGxlZCgpICYmIG1fdGhyZWFkSUQpOwotICAgIG1fcXVldWUuYXBwZW5kKHRhc2sp
OwotfQotCi12b2lkIExvY2FsU3RvcmFnZVRocmVhZDo6dGVybWluYXRlKCkKLXsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIEFTU0VSVCghbV9xdWV1ZS5raWxsZWQoKSAmJiBtX3Ro
cmVhZElEKTsKLSAgICAvLyBFdmVuIGluIHdlaXJkLCBleGNlcHRpb25hbCBjYXNlcywgZG9uJ3Qg
d2FpdCBvbiBhIG5vbmV4aXN0ZW50IHRocmVhZCB0byB0ZXJtaW5hdGUuCi0gICAgaWYgKCFtX3Ro
cmVhZElEKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3F1ZXVlLmFwcGVuZChMb2NhbFN0b3Jh
Z2VUYXNrOjpjcmVhdGVUZXJtaW5hdGUodGhpcykpOwotICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0
aW9uKG1fdGhyZWFkSUQpOwotICAgIEFTU0VSVChtX3F1ZXVlLmtpbGxlZCgpKTsKLSAgICBtX3Ro
cmVhZElEID0gMDsKLX0KLQotdm9pZCBMb2NhbFN0b3JhZ2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5h
dGUoKQotewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIG1fcXVldWUua2lsbCgp
OwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFn
ZVRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VUaHJlYWQuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDM0ZjMxZC4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0xvY2FsU3RvcmFnZVRocmVhZC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgTG9jYWxTdG9yYWdlVGhyZWFkX2gKLSNkZWZpbmUgTG9jYWxTdG9yYWdlVGhy
ZWFkX2gKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL01lc3NhZ2VR
dWV1ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotICAgIGNsYXNzIFN0b3JhZ2VBcmVhU3luYzsKLSAgICBjbGFzcyBMb2NhbFN0b3JhZ2VU
YXNrOwotCi0gICAgLy8gRklYTUU6IFJlbmFtZSB0aGlzIGNsYXNzIHRvIFN0b3JhZ2VUaHJlYWQK
LSAgICBjbGFzcyBMb2NhbFN0b3JhZ2VUaHJlYWQgewotICAgICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShMb2NhbFN0b3JhZ2VUaHJlYWQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2FsU3RvcmFnZVRocmVhZD4gY3Jl
YXRlKCk7Ci0gICAgICAgIH5Mb2NhbFN0b3JhZ2VUaHJlYWQoKTsKLQotICAgICAgICBib29sIHN0
YXJ0KCk7Ci0gICAgICAgIHZvaWQgdGVybWluYXRlKCk7Ci0gICAgICAgIHZvaWQgc2NoZWR1bGVU
YXNrKFBhc3NPd25QdHI8TG9jYWxTdG9yYWdlVGFzaz4pOwotCi0gICAgICAgIC8vIEJhY2tncm91
bmQgdGhyZWFkIHBhcnQgb2YgdGhlIHRlcm1pbmF0ZSBwcm9jZWR1cmUuCi0gICAgICAgIHZvaWQg
cGVyZm9ybVRlcm1pbmF0ZSgpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgTG9jYWxTdG9yYWdl
VGhyZWFkKCk7Ci0KLSAgICAgICAgLy8gQ2FsbGVkIG9uIGJhY2tncm91bmQgdGhyZWFkLgotICAg
ICAgICBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50Q2FsbGJhY2sodm9pZCopOwotICAgICAg
ICB2b2lkIHRocmVhZEVudHJ5UG9pbnQoKTsKLQotICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1f
dGhyZWFkSUQ7Ci0gICAgICAgIE1lc3NhZ2VRdWV1ZTxMb2NhbFN0b3JhZ2VUYXNrPiBtX3F1ZXVl
OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIExvY2FsU3Rv
cmFnZVRocmVhZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VT
eW5jTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdl
ci5jcHAKaW5kZXggYzA1ZGU5OC4uYzM5ZmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcApAQCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUgIkZp
bGVTeXN0ZW0uaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgot
I2luY2x1ZGUgIkxvY2FsU3RvcmFnZVRhc2suaCIKLSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VUaHJl
YWQuaCIKKyNpbmNsdWRlICJTdG9yYWdlVGFzay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VUaHJlYWQu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZUFyZWFTeW5jLmgiCkBAIC00Nyw3ICs0Nyw3IEBAIFBhc3NSZWZQdHI8U3RvcmFnZVN5
bmNNYW5hZ2VyPiBTdG9yYWdlU3luY01hbmFnZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgp
CiB9CiAKIFN0b3JhZ2VTeW5jTWFuYWdlcjo6U3RvcmFnZVN5bmNNYW5hZ2VyKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKLSAgICA6IG1fdGhyZWFkKExvY2FsU3RvcmFnZVRocmVhZDo6Y3JlYXRlKCkpCisg
ICAgOiBtX3RocmVhZChTdG9yYWdlVGhyZWFkOjpjcmVhdGUoKSkKICAgICAsIG1fcGF0aChwYXRo
Lmlzb2xhdGVkQ29weSgpKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC04Nyw3
ICs4Nyw3IEBAIGJvb2wgU3RvcmFnZVN5bmNNYW5hZ2VyOjpzY2hlZHVsZUltcG9ydChQYXNzUmVm
UHRyPFN0b3JhZ2VBcmVhU3luYz4gYXJlYSkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgIEFTU0VSVChtX3RocmVhZCk7CiAgICAgaWYgKG1fdGhyZWFkKQotICAgICAgICBtX3RocmVh
ZC0+c2NoZWR1bGVUYXNrKExvY2FsU3RvcmFnZVRhc2s6OmNyZWF0ZUltcG9ydChhcmVhLmdldCgp
KSk7CisgICAgICAgIG1fdGhyZWFkLT5zY2hlZHVsZVRhc2soU3RvcmFnZVRhc2s6OmNyZWF0ZUlt
cG9ydChhcmVhLmdldCgpKSk7CiAgICAgcmV0dXJuIG1fdGhyZWFkOwogfQogCkBAIC05Niw3ICs5
Niw3IEBAIHZvaWQgU3RvcmFnZVN5bmNNYW5hZ2VyOjpzY2hlZHVsZVN5bmMoUGFzc1JlZlB0cjxT
dG9yYWdlQXJlYVN5bmM+IGFyZWEpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBB
U1NFUlQobV90aHJlYWQpOwogICAgIGlmIChtX3RocmVhZCkKLSAgICAgICAgbV90aHJlYWQtPnNj
aGVkdWxlVGFzayhMb2NhbFN0b3JhZ2VUYXNrOjpjcmVhdGVTeW5jKGFyZWEuZ2V0KCkpKTsKKyAg
ICAgICAgbV90aHJlYWQtPnNjaGVkdWxlVGFzayhTdG9yYWdlVGFzazo6Y3JlYXRlU3luYyhhcmVh
LmdldCgpKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVN5bmNNYW5hZ2VyOjpzY2hlZHVsZURlbGV0ZUVt
cHR5RGF0YWJhc2UoUGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IGFyZWEpCkBAIC0xMDQsNyAr
MTA0LDcgQEAgdm9pZCBTdG9yYWdlU3luY01hbmFnZXI6OnNjaGVkdWxlRGVsZXRlRW1wdHlEYXRh
YmFzZShQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4KICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIEFTU0VSVChtX3RocmVhZCk7CiAgICAgaWYgKG1fdGhyZWFkKQotICAgICAgICBt
X3RocmVhZC0+c2NoZWR1bGVUYXNrKExvY2FsU3RvcmFnZVRhc2s6OmNyZWF0ZURlbGV0ZUVtcHR5
RGF0YWJhc2UoYXJlYS5nZXQoKSkpOworICAgICAgICBtX3RocmVhZC0+c2NoZWR1bGVUYXNrKFN0
b3JhZ2VUYXNrOjpjcmVhdGVEZWxldGVFbXB0eURhdGFiYXNlKGFyZWEuZ2V0KCkpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlU3luY01hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVN5
bmNNYW5hZ2VyLmgKaW5kZXggNWUwZjE2NS4uZTI3ODMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5oCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIExvY2FsU3RvcmFnZVRocmVhZDsKKyAgICBjbGFzcyBT
dG9yYWdlVGhyZWFkOwogICAgIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogICAgIGNsYXNzIFN0b3Jh
Z2VBcmVhU3luYzsKIApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
cHJpdmF0ZToKICAgICAgICAgU3RvcmFnZVN5bmNNYW5hZ2VyKGNvbnN0IFN0cmluZyYgcGF0aCk7
CiAKLSAgICAgICAgT3duUHRyPExvY2FsU3RvcmFnZVRocmVhZD4gbV90aHJlYWQ7CisgICAgICAg
IE93blB0cjxTdG9yYWdlVGhyZWFkPiBtX3RocmVhZDsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcg
bWVtYmVycyBhcmUgc3ViamVjdCB0byB0aHJlYWQgc3luY2hyb25pemF0aW9uIGlzc3VlcwogICAg
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGFzay5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdhYWJlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2suY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VUYXNrLmgiCisKKyNpbmNsdWRlICJTdG9yYWdlVGhyZWFk
LmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFTeW5jLmgiCisjaW5jbHVkZSAiU3RvcmFnZVRyYWNr
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdG9yYWdlVGFzazo6U3RvcmFnZVRhc2so
VHlwZSB0eXBlLCBTdG9yYWdlQXJlYVN5bmMqIGFyZWEpCisgICAgOiBtX3R5cGUodHlwZSkKKyAg
ICAsIG1fYXJlYShhcmVhKQorICAgICwgbV90aHJlYWQoMCkKK3sKKyAgICBBU1NFUlQobV9hcmVh
KTsKKyAgICBBU1NFUlQobV90eXBlID09IEFyZWFJbXBvcnQgfHwgbV90eXBlID09IEFyZWFTeW5j
IHx8IG1fdHlwZSA9PSBEZWxldGVFbXB0eURhdGFiYXNlKTsKK30KKworU3RvcmFnZVRhc2s6OlN0
b3JhZ2VUYXNrKFR5cGUgdHlwZSwgU3RvcmFnZVRocmVhZCogdGhyZWFkKQorICAgIDogbV90eXBl
KHR5cGUpCisgICAgLCBtX2FyZWEoMCkKKyAgICAsIG1fdGhyZWFkKHRocmVhZCkKK3sKKyAgICBB
U1NFUlQobV90aHJlYWQpOworICAgIEFTU0VSVChtX3R5cGUgPT0gVGVybWluYXRlVGhyZWFkKTsK
K30KKworU3RvcmFnZVRhc2s6OlN0b3JhZ2VUYXNrKFR5cGUgdHlwZSkKKyAgICA6IG1fdHlwZSh0
eXBlKQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gSW1wb3J0T3JpZ2lucyB8fCBtX3R5cGUgPT0g
RGVsZXRlQWxsT3JpZ2lucyk7Cit9CisKK1N0b3JhZ2VUYXNrOjpTdG9yYWdlVGFzayhUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikKKyAgICA6IG1fdHlwZSh0eXBlKQor
ICAgICwgbV9vcmlnaW5JZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpCit7CisgICAgQVNTRVJU
KG1fdHlwZSA9PSBEZWxldGVPcmlnaW4pOworfQorCitTdG9yYWdlVGFzazo6U3RvcmFnZVRhc2so
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VGaWxlbmFtZSkKKyAgICA6IG1fdHlwZSh0eXBlKQorICAgICwgbV9vcmlnaW5JZGVu
dGlmaWVyKG9yaWdpbklkZW50aWZpZXIpCisgICAgLCBtX2RhdGFiYXNlRmlsZW5hbWUoZGF0YWJh
c2VGaWxlbmFtZSkKK3sKKyAgICBBU1NFUlQobV90eXBlID09IFNldE9yaWdpbkRldGFpbHMpOwor
fQorCitTdG9yYWdlVGFzazo6flN0b3JhZ2VUYXNrKCkKK3sKK30KKwordm9pZCBTdG9yYWdlVGFz
azo6cGVyZm9ybVRhc2soKQoreworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgIGNhc2Ug
QXJlYUltcG9ydDoKKyAgICAgICAgICAgIG1fYXJlYS0+cGVyZm9ybUltcG9ydCgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJlYVN5bmM6CisgICAgICAgICAgICBtX2FyZWEt
PnBlcmZvcm1TeW5jKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTZXRPcmln
aW5EZXRhaWxzOgorICAgICAgICAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5zeW5jU2V0
T3JpZ2luRGV0YWlscyhtX29yaWdpbklkZW50aWZpZXIsIG1fZGF0YWJhc2VGaWxlbmFtZSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJbXBvcnRPcmlnaW5zOgorICAgICAgICAg
ICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5zeW5jSW1wb3J0T3JpZ2luSWRlbnRpZmllcnMo
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERlbGV0ZUFsbE9yaWdpbnM6Cisg
ICAgICAgICAgICBTdG9yYWdlVHJhY2tlcjo6dHJhY2tlcigpLnN5bmNEZWxldGVBbGxPcmlnaW5z
KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEZWxldGVPcmlnaW46CisgICAg
ICAgICAgICBTdG9yYWdlVHJhY2tlcjo6dHJhY2tlcigpLnN5bmNEZWxldGVPcmlnaW4obV9vcmln
aW5JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERlbGV0ZUVt
cHR5RGF0YWJhc2U6CisgICAgICAgICAgICBtX2FyZWEtPmRlbGV0ZUVtcHR5RGF0YWJhc2UoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRlcm1pbmF0ZVRocmVhZDoKKyAgICAg
ICAgICAgIG1fdGhyZWFkLT5wZXJmb3JtVGVybWluYXRlKCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZVRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRhc2suaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDA1MjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVGFzay5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0b3JhZ2VU
YXNrX2gKKyNkZWZpbmUgU3RvcmFnZVRhc2tfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOwor
ICAgIGNsYXNzIFN0b3JhZ2VUaHJlYWQ7CisKKyAgICBjbGFzcyBTdG9yYWdlVGFzayB7CisgICAg
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0b3JhZ2VUYXNrKTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CisgICAgcHVibGljOgorICAgICAgICBlbnVtIFR5cGUgeyBBcmVhSW1wb3J0LCBBcmVh
U3luYywgRGVsZXRlRW1wdHlEYXRhYmFzZSwgU2V0T3JpZ2luRGV0YWlscywgSW1wb3J0T3JpZ2lu
cywgRGVsZXRlQWxsT3JpZ2lucywgRGVsZXRlT3JpZ2luLCBUZXJtaW5hdGVUaHJlYWQgfTsKKwor
ICAgICAgICB+U3RvcmFnZVRhc2soKTsKKworICAgICAgICBzdGF0aWMgUGFzc093blB0cjxTdG9y
YWdlVGFzaz4gY3JlYXRlSW1wb3J0KFN0b3JhZ2VBcmVhU3luYyogYXJlYSkgeyByZXR1cm4gYWRv
cHRQdHIobmV3IFN0b3JhZ2VUYXNrKEFyZWFJbXBvcnQsIGFyZWEpKTsgfQorICAgICAgICBzdGF0
aWMgUGFzc093blB0cjxTdG9yYWdlVGFzaz4gY3JlYXRlU3luYyhTdG9yYWdlQXJlYVN5bmMqIGFy
ZWEpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBTdG9yYWdlVGFzayhBcmVhU3luYywgYXJlYSkpOyB9
CisgICAgICAgIHN0YXRpYyBQYXNzT3duUHRyPFN0b3JhZ2VUYXNrPiBjcmVhdGVEZWxldGVFbXB0
eURhdGFiYXNlKFN0b3JhZ2VBcmVhU3luYyogYXJlYSkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFN0
b3JhZ2VUYXNrKERlbGV0ZUVtcHR5RGF0YWJhc2UsIGFyZWEpKTsgfQorICAgICAgICBzdGF0aWMg
UGFzc093blB0cjxTdG9yYWdlVGFzaz4gY3JlYXRlT3JpZ2luSWRlbnRpZmllcnNJbXBvcnQoKSB7
IHJldHVybiBhZG9wdFB0cihuZXcgU3RvcmFnZVRhc2soSW1wb3J0T3JpZ2lucykpOyB9CisgICAg
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFN0b3JhZ2VUYXNrPiBjcmVhdGVTZXRPcmlnaW5EZXRhaWxz
KGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUZp
bGVuYW1lKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU3RvcmFnZVRhc2soU2V0T3JpZ2luRGV0YWls
cywgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VGaWxlbmFtZSkpOyB9CisgICAgICAgIHN0YXRp
YyBQYXNzT3duUHRyPFN0b3JhZ2VUYXNrPiBjcmVhdGVEZWxldGVPcmlnaW4oY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU3RvcmFnZVRhc2soRGVs
ZXRlT3JpZ2luLCBvcmlnaW5JZGVudGlmaWVyKSk7IH0KKyAgICAgICAgc3RhdGljIFBhc3NPd25Q
dHI8U3RvcmFnZVRhc2s+IGNyZWF0ZURlbGV0ZUFsbE9yaWdpbnMoKSB7IHJldHVybiBhZG9wdFB0
cihuZXcgU3RvcmFnZVRhc2soRGVsZXRlQWxsT3JpZ2lucykpOyB9CisgICAgICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFN0b3JhZ2VUYXNrPiBjcmVhdGVUZXJtaW5hdGUoU3RvcmFnZVRocmVhZCogdGhy
ZWFkKSB7IHJldHVybiBhZG9wdFB0cihuZXcgU3RvcmFnZVRhc2soVGVybWluYXRlVGhyZWFkLCB0
aHJlYWQpKTsgfQorCisgICAgICAgIHZvaWQgcGVyZm9ybVRhc2soKTsKKworICAgIHByaXZhdGU6
CisgICAgICAgIFN0b3JhZ2VUYXNrKFR5cGUsIFN0b3JhZ2VBcmVhU3luYyopOworICAgICAgICBT
dG9yYWdlVGFzayhUeXBlLCBTdG9yYWdlVGhyZWFkKik7CisgICAgICAgIFN0b3JhZ2VUYXNrKFR5
cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CisgICAgICAgIFN0b3JhZ2VUYXNr
KFR5cGUsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZUZpbGVuYW1lKTsKKyAgICAgICAgU3RvcmFnZVRhc2soVHlwZSk7CisKKyAgICAgICAgVHlw
ZSBtX3R5cGU7CisgICAgICAgIFN0b3JhZ2VBcmVhU3luYyogbV9hcmVhOworICAgICAgICBTdG9y
YWdlVGhyZWFkKiBtX3RocmVhZDsKKyAgICAgICAgU3RyaW5nIG1fb3JpZ2luSWRlbnRpZmllcjsK
KyAgICAgICAgU3RyaW5nIG1fZGF0YWJhc2VGaWxlbmFtZTsKKyAgICB9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTdG9yYWdlVGFza19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlVGhyZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li42MjNkN2VhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlVGhyZWFkLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0b3Jh
Z2VUaHJlYWQuaCIKKworI2luY2x1ZGUgIlN0b3JhZ2VUYXNrLmgiCisjaW5jbHVkZSAiU3RvcmFn
ZUFyZWFTeW5jLmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzT3duUHRyPFN0b3JhZ2VUaHJlYWQ+IFN0b3JhZ2VUaHJlYWQ6OmNyZWF0
ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTdG9yYWdlVGhyZWFkKTsKK30KKworU3Rv
cmFnZVRocmVhZDo6U3RvcmFnZVRocmVhZCgpCisgICAgOiBtX3RocmVhZElEKDApCit7Cit9CisK
K1N0b3JhZ2VUaHJlYWQ6On5TdG9yYWdlVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVCghbV90aHJlYWRJRCk7Cit9CisKK2Jvb2wgU3RvcmFnZVRocmVh
ZDo6c3RhcnQoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKCFtX3Ro
cmVhZElEKQorICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6
OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIp
OworICAgIHJldHVybiBtX3RocmVhZElEOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRocmVh
ZEVudHJ5UG9pbnRDYWxsYmFjayh2b2lkKiB0aHJlYWQpCit7CisgICAgc3RhdGljX2Nhc3Q8U3Rv
cmFnZVRocmVhZCo+KHRocmVhZCktPnRocmVhZEVudHJ5UG9pbnQoKTsKK30KKwordm9pZCBTdG9y
YWdlVGhyZWFkOjp0aHJlYWRFbnRyeVBvaW50KCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKKyAgICB3aGlsZSAoT3duUHRyPFN0b3JhZ2VUYXNrPiB0YXNrID0gbV9xdWV1ZS53YWl0
Rm9yTWVzc2FnZSgpKQorICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygpOworfQorCit2b2lkIFN0
b3JhZ2VUaHJlYWQ6OnNjaGVkdWxlVGFzayhQYXNzT3duUHRyPFN0b3JhZ2VUYXNrPiB0YXNrKQor
eworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFtX3F1ZXVlLmtpbGxl
ZCgpICYmIG1fdGhyZWFkSUQpOworICAgIG1fcXVldWUuYXBwZW5kKHRhc2spOworfQorCit2b2lk
IFN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoIW1fcXVldWUua2lsbGVkKCkgJiYgbV90aHJlYWRJRCk7CisgICAgLy8g
RXZlbiBpbiB3ZWlyZCwgZXhjZXB0aW9uYWwgY2FzZXMsIGRvbid0IHdhaXQgb24gYSBub25leGlz
dGVudCB0aHJlYWQgdG8gdGVybWluYXRlLgorICAgIGlmICghbV90aHJlYWRJRCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9xdWV1ZS5hcHBlbmQoU3RvcmFnZVRhc2s6OmNyZWF0ZVRlcm1pbmF0
ZSh0aGlzKSk7CisgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24obV90aHJlYWRJRCk7CisgICAg
QVNTRVJUKG1fcXVldWUua2lsbGVkKCkpOworICAgIG1fdGhyZWFkSUQgPSAwOworfQorCit2b2lk
IFN0b3JhZ2VUaHJlYWQ6OnBlcmZvcm1UZXJtaW5hdGUoKQoreworICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworICAgIG1fcXVldWUua2lsbCgpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZVRocmVhZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0
ODQxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VU
aHJlYWQuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBTdG9yYWdlVGhyZWFkX2gKKyNkZWZpbmUgU3RvcmFnZVRo
cmVhZF9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NZXNzYWdl
UXVldWUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKyAgICBjbGFzcyBTdG9yYWdlQXJlYVN5bmM7CisgICAgY2xhc3MgU3RvcmFnZVRhc2s7
CisKKyAgICBjbGFzcyBTdG9yYWdlVGhyZWFkIHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoU3RvcmFnZVRocmVhZCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIHB1YmxpYzoK
KyAgICAgICAgc3RhdGljIFBhc3NPd25QdHI8U3RvcmFnZVRocmVhZD4gY3JlYXRlKCk7CisgICAg
ICAgIH5TdG9yYWdlVGhyZWFkKCk7CisKKyAgICAgICAgYm9vbCBzdGFydCgpOworICAgICAgICB2
b2lkIHRlcm1pbmF0ZSgpOworICAgICAgICB2b2lkIHNjaGVkdWxlVGFzayhQYXNzT3duUHRyPFN0
b3JhZ2VUYXNrPik7CisKKyAgICAgICAgLy8gQmFja2dyb3VuZCB0aHJlYWQgcGFydCBvZiB0aGUg
dGVybWluYXRlIHByb2NlZHVyZS4KKyAgICAgICAgdm9pZCBwZXJmb3JtVGVybWluYXRlKCk7CisK
KyAgICBwcml2YXRlOgorICAgICAgICBTdG9yYWdlVGhyZWFkKCk7CisKKyAgICAgICAgLy8gQ2Fs
bGVkIG9uIGJhY2tncm91bmQgdGhyZWFkLgorICAgICAgICBzdGF0aWMgdm9pZCB0aHJlYWRFbnRy
eVBvaW50Q2FsbGJhY2sodm9pZCopOworICAgICAgICB2b2lkIHRocmVhZEVudHJ5UG9pbnQoKTsK
KworICAgICAgICBUaHJlYWRJZGVudGlmaWVyIG1fdGhyZWFkSUQ7CisgICAgICAgIE1lc3NhZ2VR
dWV1ZTxTdG9yYWdlVGFzaz4gbV9xdWV1ZTsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBTdG9yYWdlVGhyZWFkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlVHJhY2tlci5jcHAKaW5kZXggZjk4MWU2Yi4uOWUxOGRkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAogI2luY2x1
ZGUgIkRhdGFiYXNlVGhyZWFkLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUg
IkxvY2FsU3RvcmFnZVRhc2suaCIKLSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VUaHJlYWQuaCIKKyNp
bmNsdWRlICJTdG9yYWdlVGFzay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VUaHJlYWQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU1FMaXRl
RmlsZVN5c3RlbS5oIgpAQCAtODcsNyArODcsNyBAQCBTdG9yYWdlVHJhY2tlciYgU3RvcmFnZVRy
YWNrZXI6OnRyYWNrZXIoKQogU3RvcmFnZVRyYWNrZXI6OlN0b3JhZ2VUcmFja2VyKGNvbnN0IFN0
cmluZyYgc3RvcmFnZVBhdGgpCiAgICAgOiBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKHN0b3JhZ2VQ
YXRoLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9jbGllbnQoMCkKLSAgICAsIG1fdGhyZWFkKExv
Y2FsU3RvcmFnZVRocmVhZDo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZChTdG9yYWdlVGhyZWFk
OjpjcmVhdGUoKSkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX25lZWRzSW5pdGlh
bGl6YXRpb24oZmFsc2UpCiAgICAgLCBtX2ZpbmlzaGVkSW1wb3J0aW5nT3JpZ2luSWRlbnRpZmll
cnMoZmFsc2UpCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6aW1wb3J0
T3JpZ2luSWRlbnRpZmllcnMoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNT
RVJUKG1fdGhyZWFkKTsKIAotICAgIG1fdGhyZWFkLT5zY2hlZHVsZVRhc2soTG9jYWxTdG9yYWdl
VGFzazo6Y3JlYXRlT3JpZ2luSWRlbnRpZmllcnNJbXBvcnQoKSk7CisgICAgbV90aHJlYWQtPnNj
aGVkdWxlVGFzayhTdG9yYWdlVGFzazo6Y3JlYXRlT3JpZ2luSWRlbnRpZmllcnNJbXBvcnQoKSk7
CiB9CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6Om5vdGlmeUZpbmlzaGVkSW1wb3J0aW5nT3JpZ2lu
SWRlbnRpZmllcnNPbk1haW5UaHJlYWQodm9pZCopCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c2V0T3JpZ2luRGV0YWlscyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIGNvbnN0IFN0cmkKICAgICAgICAgbV9vcmlnaW5TZXQuYWRkKG9yaWdpbklkZW50aWZp
ZXIpOwogICAgIH0KIAotICAgIE93blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiB0YXNrID0gTG9jYWxT
dG9yYWdlVGFzazo6Y3JlYXRlU2V0T3JpZ2luRGV0YWlscyhvcmlnaW5JZGVudGlmaWVyLmlzb2xh
dGVkQ29weSgpLCBkYXRhYmFzZUZpbGUpOworICAgIE93blB0cjxTdG9yYWdlVGFzaz4gdGFzayA9
IFN0b3JhZ2VUYXNrOjpjcmVhdGVTZXRPcmlnaW5EZXRhaWxzKG9yaWdpbklkZW50aWZpZXIuaXNv
bGF0ZWRDb3B5KCksIGRhdGFiYXNlRmlsZSk7CiAKICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsK
ICAgICAgICAgQVNTRVJUKG1fdGhyZWFkKTsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIFN0b3Jh
Z2VUcmFja2VyOjpzY2hlZHVsZVRhc2sodm9pZCogdGFza0luKQogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgQVNTRVJUKFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkubV90aHJlYWQp
OwogICAgIAotICAgIE93blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiB0YXNrID0gYWRvcHRQdHIocmVp
bnRlcnByZXRfY2FzdDxMb2NhbFN0b3JhZ2VUYXNrKj4odGFza0luKSk7CisgICAgT3duUHRyPFN0
b3JhZ2VUYXNrPiB0YXNrID0gYWRvcHRQdHIocmVpbnRlcnByZXRfY2FzdDxTdG9yYWdlVGFzayo+
KHRhc2tJbikpOwogCiAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5tX3RocmVhZC0+c2No
ZWR1bGVUYXNrKHRhc2sucmVsZWFzZSgpKTsKIH0KQEAgLTM4Myw3ICszODMsNyBAQCB2b2lkIFN0
b3JhZ2VUcmFja2VyOjpkZWxldGVBbGxPcmlnaW5zKCkKIAogICAgIFBhZ2VHcm91cDo6Y2xlYXJM
b2NhbFN0b3JhZ2VGb3JBbGxPcmlnaW5zKCk7CiAgICAgCi0gICAgbV90aHJlYWQtPnNjaGVkdWxl
VGFzayhMb2NhbFN0b3JhZ2VUYXNrOjpjcmVhdGVEZWxldGVBbGxPcmlnaW5zKCkpOworICAgIG1f
dGhyZWFkLT5zY2hlZHVsZVRhc2soU3RvcmFnZVRhc2s6OmNyZWF0ZURlbGV0ZUFsbE9yaWdpbnMo
KSk7CiB9CiAgICAgCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRlQWxsT3JpZ2lucygp
CkBAIC00NzksNyArNDc5LDcgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAgICAgICAgIG1fb3JpZ2luU2V0LnJlbW92ZShvcmlnaW5J
ZCk7CiAgICAgfQogICAgIAotICAgIG1fdGhyZWFkLT5zY2hlZHVsZVRhc2soTG9jYWxTdG9yYWdl
VGFzazo6Y3JlYXRlRGVsZXRlT3JpZ2luKG9yaWdpbklkKSk7CisgICAgbV90aHJlYWQtPnNjaGVk
dWxlVGFzayhTdG9yYWdlVGFzazo6Y3JlYXRlRGVsZXRlT3JpZ2luKG9yaWdpbklkKSk7CiB9CiAK
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
VHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCmluZGV4
IGQ3Y2I4MjQuLjllMTk0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZVRyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2Vy
LmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBMb2Nh
bFN0b3JhZ2VUYXNrOwotY2xhc3MgTG9jYWxTdG9yYWdlVGhyZWFkOworY2xhc3MgU3RvcmFnZVRh
c2s7CitjbGFzcyBTdG9yYWdlVGhyZWFkOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBT
dG9yYWdlVHJhY2tlckNsaWVudDsgICAgCiAKQEAgLTExMyw3ICsxMTMsNyBAQCBwcml2YXRlOgog
ICAgIE9yaWdpblNldCBtX29yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5zQmVpbmdE
ZWxldGVkOwogCi0gICAgT3duUHRyPExvY2FsU3RvcmFnZVRocmVhZD4gbV90aHJlYWQ7CisgICAg
T3duUHRyPFN0b3JhZ2VUaHJlYWQ+IG1fdGhyZWFkOwogICAgIAogICAgIGJvb2wgbV9pc0FjdGl2
ZTsKICAgICBib29sIG1fbmVlZHNJbml0aWFsaXphdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2Uvd2luY2UvTG9jYWxTdG9yYWdlVGhyZWFkV2luQ0UuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwYzRlODkuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS93aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1v
YmlsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpIHdpbGwgYmUgdXNlZnVsLAot
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTG9jYWxTdG9yYWdlVGhyZWFk
LmgiCi0KLSNpbmNsdWRlICJMb2NhbFN0b3JhZ2VUYXNrLmgiCi0jaW5jbHVkZSAiU3RvcmFnZUFy
ZWFTeW5jLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTG9jYWxTdG9yYWdlVGhyZWFkOjpM
b2NhbFN0b3JhZ2VUaHJlYWQoKQotOiBtX3RpbWVyKHRoaXMsICZMb2NhbFN0b3JhZ2VUaHJlYWQ6
OnRpbWVyRmlyZWQpCi17Ci19Ci0KLUxvY2FsU3RvcmFnZVRocmVhZDo6fkxvY2FsU3RvcmFnZVRo
cmVhZCgpCi17Ci19Ci0KLWJvb2wgTG9jYWxTdG9yYWdlVGhyZWFkOjpzdGFydCgpCi17Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgTG9jYWxTdG9yYWdlVGhyZWFkOjp0aW1lckZpcmVkKFRp
bWVyPExvY2FsU3RvcmFnZVRocmVhZD4qKQotewotICAgIGlmICghbV9xdWV1ZS5pc0VtcHR5KCkp
IHsKLSAgICAgICAgUmVmUHRyPExvY2FsU3RvcmFnZVRhc2s+IHRhc2sgPSBtX3F1ZXVlLmZpcnN0
KCk7Ci0gICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7Ci0gICAgICAgIG1fcXVldWUucmVtb3Zl
Rmlyc3QoKTsKLSAgICAgICAgaWYgKCFtX3F1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1f
dGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgIH0KLX0KLQotdm9pZCBMb2NhbFN0b3JhZ2VUaHJl
YWQ6OnNjaGVkdWxlSW1wb3J0KFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBhcmVhKQotewot
ICAgIG1fcXVldWUuYXBwZW5kKExvY2FsU3RvcmFnZVRhc2s6OmNyZWF0ZUltcG9ydChhcmVhKSk7
Ci0gICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KDApOwotfQotCi12b2lkIExvY2FsU3RvcmFnZVRocmVhZDo6c2NoZWR1bGVTeW5jKFBhc3NS
ZWZQdHI8U3RvcmFnZUFyZWFTeW5jPiBhcmVhKQotewotICAgIG1fcXVldWUuYXBwZW5kKExvY2Fs
U3RvcmFnZVRhc2s6OmNyZWF0ZVN5bmMoYXJlYSkpOwotICAgIGlmICghbV90aW1lci5pc0FjdGl2
ZSgpKQotICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBMb2NhbFN0
b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCi17Ci0gICAgbV9xdWV1ZS5jbGVhcigpOwotICAgIG1f
dGltZXIuc3RvcCgpOwotfQotCi12b2lkIExvY2FsU3RvcmFnZVRocmVhZDo6cGVyZm9ybVRlcm1p
bmF0ZSgpCi17Ci0gICAgbV9xdWV1ZS5jbGVhcigpOwotICAgIG1fdGltZXIuc3RvcCgpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL3dpbmNlL0xvY2FsU3RvcmFnZVRocmVhZFdpbkNFLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL3dpbmNlL0xvY2FsU3RvcmFnZVRocmVhZFdpbkNFLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA2ZTdkNDUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS93
aW5jZS9Mb2NhbFN0b3JhZ2VUaHJlYWRXaW5DRS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaSB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotCi0jaWZuZGVm
IExvY2FsU3RvcmFnZVRocmVhZFdpbkNFX2gKLSNkZWZpbmUgTG9jYWxTdG9yYWdlVGhyZWFkV2lu
Q0VfaAotCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgU3RvcmFnZUFyZWFTeW5jOwot
ICAgIGNsYXNzIExvY2FsU3RvcmFnZVRhc2s7Ci0KLSAgICBjbGFzcyBMb2NhbFN0b3JhZ2VUaHJl
YWQgOiBwdWJsaWMgUmVmQ291bnRlZDxMb2NhbFN0b3JhZ2VUaHJlYWQ+IHsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPExvY2FsU3RvcmFnZVRocmVhZD4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IExvY2FsU3RvcmFnZVRocmVhZCk7IH0KLQotICAgICAgICB+
TG9jYWxTdG9yYWdlVGhyZWFkKCk7Ci0gICAgICAgIGJvb2wgc3RhcnQoKTsKLSAgICAgICAgdm9p
ZCBzY2hlZHVsZUltcG9ydChQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4pOwotICAgICAgICB2
b2lkIHNjaGVkdWxlU3luYyhQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4pOwotICAgICAgICB2
b2lkIHRlcm1pbmF0ZSgpOwotICAgICAgICB2b2lkIHBlcmZvcm1UZXJtaW5hdGUoKTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIExvY2FsU3RvcmFnZVRocmVhZCgpOwotCi0gICAgICAgIHZvaWQg
dGltZXJGaXJlZChUaW1lcjxMb2NhbFN0b3JhZ2VUaHJlYWQ+Kik7Ci0KLSAgICAgICAgRGVxdWU8
UmVmUHRyPExvY2FsU3RvcmFnZVRhc2s+ID4gbV9xdWV1ZTsKLSAgICAgICAgVGltZXI8TG9jYWxT
dG9yYWdlVGhyZWFkPiBtX3RpbWVyOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIExvY2FsU3RvcmFnZVRocmVhZFdpbkNFX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFnZVRocmVhZFdpbkNFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFnZVRocmVhZFdpbkNFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWU4OTZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFkV2luQ0UuY3BwCkBAIC0wLDAgKzEs
ODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGkgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTdG9yYWdlVGhyZWFkLmgiCisKKyNpbmNsdWRlICJTdG9y
YWdlVGFzay5oIgorI2luY2x1ZGUgIlN0b3JhZ2VBcmVhU3luYy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1N0b3JhZ2VUaHJlYWQ6OlN0b3JhZ2VUaHJlYWQoKQorOiBtX3RpbWVyKHRoaXMs
ICZTdG9yYWdlVGhyZWFkOjp0aW1lckZpcmVkKQoreworfQorCitTdG9yYWdlVGhyZWFkOjp+U3Rv
cmFnZVRocmVhZCgpCit7Cit9CisKK2Jvb2wgU3RvcmFnZVRocmVhZDo6c3RhcnQoKQoreworICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRpbWVyRmlyZWQoVGltZXI8
U3RvcmFnZVRocmVhZD4qKQoreworICAgIGlmICghbV9xdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgUmVmUHRyPFN0b3JhZ2VUYXNrPiB0YXNrID0gbV9xdWV1ZS5maXJzdCgpOworICAgICAgICB0
YXNrLT5wZXJmb3JtVGFzaygpOworICAgICAgICBtX3F1ZXVlLnJlbW92ZUZpcnN0KCk7CisgICAg
ICAgIGlmICghbV9xdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKKyAgICB9Cit9CisKK3ZvaWQgU3RvcmFnZVRocmVhZDo6c2NoZWR1bGVJbXBvcnQo
UGFzc1JlZlB0cjxTdG9yYWdlQXJlYVN5bmM+IGFyZWEpCit7CisgICAgbV9xdWV1ZS5hcHBlbmQo
U3RvcmFnZVRhc2s6OmNyZWF0ZUltcG9ydChhcmVhKSk7CisgICAgaWYgKCFtX3RpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIFN0b3Jh
Z2VUaHJlYWQ6OnNjaGVkdWxlU3luYyhQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhU3luYz4gYXJlYSkK
K3sKKyAgICBtX3F1ZXVlLmFwcGVuZChTdG9yYWdlVGFzazo6Y3JlYXRlU3luYyhhcmVhKSk7Cisg
ICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90
KDApOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6OnRlcm1pbmF0ZSgpCit7CisgICAgbV9xdWV1
ZS5jbGVhcigpOworICAgIG1fdGltZXIuc3RvcCgpOworfQorCit2b2lkIFN0b3JhZ2VUaHJlYWQ6
OnBlcmZvcm1UZXJtaW5hdGUoKQoreworICAgIG1fcXVldWUuY2xlYXIoKTsKKyAgICBtX3RpbWVy
LnN0b3AoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS93aW5jZS9TdG9yYWdlVGhyZWFkV2luQ0UuaCBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFnZVRocmVhZFdpbkNFLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNjc1NzNhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2Uvd2luY2UvU3RvcmFnZVRocmVhZFdpbkNFLmgKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaSB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIFN0b3Jh
Z2VUaHJlYWRXaW5DRV9oCisjZGVmaW5lIFN0b3JhZ2VUaHJlYWRXaW5DRV9oCisKKyNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKyAgICBjbGFzcyBTdG9yYWdlQXJlYVN5bmM7CisgICAgY2xhc3MgU3RvcmFn
ZVRhc2s7CisKKyAgICBjbGFzcyBTdG9yYWdlVGhyZWFkIDogcHVibGljIFJlZkNvdW50ZWQ8U3Rv
cmFnZVRocmVhZD4geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Rv
cmFnZVRocmVhZD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0b3JhZ2VUaHJlYWQp
OyB9CisKKyAgICAgICAgflN0b3JhZ2VUaHJlYWQoKTsKKyAgICAgICAgYm9vbCBzdGFydCgpOwor
ICAgICAgICB2b2lkIHNjaGVkdWxlSW1wb3J0KFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPik7
CisgICAgICAgIHZvaWQgc2NoZWR1bGVTeW5jKFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFTeW5jPik7
CisgICAgICAgIHZvaWQgdGVybWluYXRlKCk7CisgICAgICAgIHZvaWQgcGVyZm9ybVRlcm1pbmF0
ZSgpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgU3RvcmFnZVRocmVhZCgpOworCisgICAgICAg
IHZvaWQgdGltZXJGaXJlZChUaW1lcjxTdG9yYWdlVGhyZWFkPiopOworCisgICAgICAgIERlcXVl
PFJlZlB0cjxTdG9yYWdlVGFzaz4gPiBtX3F1ZXVlOworICAgICAgICBUaW1lcjxTdG9yYWdlVGhy
ZWFkPiBtX3RpbWVyOworICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFN0b3JhZ2VUaHJlYWRXaW5DRV9oCi0tIAoxLjcuNS40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>