<?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>234126</bug_id>
          
          <creation_ts>2021-12-09 22:53:42 -0800</creation_ts>
          <short_desc>Move if-domain and unless-domain conversion to WKContentRuleList parsing</short_desc>
          <delta_ts>2021-12-10 12:23:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822525</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-09 22:53:42 -0800</bug_when>
    <thetext>Move if-domain and unless-domain conversion to WKContentRuleList parsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822530</commentid>
    <comment_count>1</comment_count>
      <attachid>446665</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-09 23:00:03 -0800</bug_when>
    <thetext>Created attachment 446665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822533</commentid>
    <comment_count>2</comment_count>
      <attachid>446668</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-09 23:14:45 -0800</bug_when>
    <thetext>Created attachment 446668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822882</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-10 12:23:09 -0800</bug_when>
    <thetext>r286868</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446665</attachid>
            <date>2021-12-09 23:00:03 -0800</date>
            <delta_ts>2021-12-09 23:14:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234126-20211209230003.patch</filename>
            <type>text/plain</type>
            <size>38844</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVkZmQ0NGEwYjhmOTZj
MzZmNTI1YTc3NDIyM2Q5ODg3MDY4OTkwYi4uZmY2NjQzOTI4NzljNTdhNTQyMzA2YjVjZWQyZDlk
ZjYxMjNkZjBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTEyLTA5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBp
Zi1kb21haW4gYW5kIHVubGVzcy1kb21haW4gY29udmVyc2lvbiB0byBXS0NvbnRlbnRSdWxlTGlz
dCBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzQxMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHNpbXBsaWZpZXMgYSBwYXJ0IG9mIHRoZSBjb21waWxlciB0aGF0IGlzIGFib3V0IHRv
IGdldCBtb3JlIGNvbXBsaWNhdGVkLgorICAgICAgICBpZi1kb21haW4gYW5kIHVubGVzcy1kb21h
aW4gd2VyZSB0aGUgcHJlZGVjZXNzb3JzIG9mIGlmLXRvcC11cmwgYW5kIHVubGVzcy10b3AtdXJs
LAorICAgICAgICB3aGljaCBhcmUgc3RyaWN0bHkgbW9yZSBwb3dlcmZ1bCBiZWNhdXNlIHRoZXkg
cnVuIHJlZ2V4ZXMgb24gdGhlIHdob2xlIHRvcCBVUkwuCisgICAgICAgIFRoaXMganVzdCB0cmFu
c2xhdGVzICotZG9tYWluIGludG8gYSAqLXRvcC11cmwgcmVnZXguICBUaGlzIGFsc28gbWFrZXMg
aXQgc28gdGhlcmUKKyAgICAgICAgaXMgbm8gcmVhc29uIG5vdCB0byBoYXZlICotZG9tYWluIGFu
ZCAqLXRvcC11cmwgY29uZGl0aW9ucyBpbiB0aGUgc2FtZSBydWxlIGxpc3QuCisKKyAgICAgICAg
KiBjb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbWJpbmVkVVJMRmlsdGVyczo6YWRkRG9tYWluKTog
RGVsZXRlZC4KKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMu
aDoKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRlbnNpb24u
aDoKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uOjpwb3B1
bGF0ZUNvbmRpdGlvbkNhY2hlSWZOZWVkZWQpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Y29tcGlsZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuaDoKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OmNvbnRlbnRFeHRlbnNpb25FcnJvckNhdGVnb3J5KToKKyAgICAgICAgKiBjb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuaDoKKyAgICAgICAgKiBjb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRFeHRlbnNpb25zOjpnZXREb21haW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpsb2FkVHJpZ2dlcik6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblJ1bGUuaDoKKwogMjAyMS0xMi0wOCAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBbHdheXMgc2V0IGF1ZGlv
IHNlc3Npb24gcHJlZmVycmVkIGlucHV0IGFmdGVyIGNoYW5naW5nIHRoZSBjYXRlZ29yeQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA2ODdmZDc5OGMyMTk1NWVkMTU4OTQ1ZGE5N2M4YmY2OWUzY2EwYjNkLi4yZDlhNGI1
NDk0NmY1MTJlZTNhMGIzMjkzM2M0MDBlMTBmYjkxODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDIxLTEyLTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgTW92ZSBpZi1kb21haW4gYW5kIHVubGVzcy1kb21haW4gY29udmVyc2lv
biB0byBXS0NvbnRlbnRSdWxlTGlzdCBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQxMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojpjb25k
aXRpb25zQXBwbHlPbmx5VG9Eb21haW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoK
KyAgICAgICAgKEFQSTo6ZW5jb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdGEpOgorICAgICAgICAo
QVBJOjpkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YSk6CisgICAgICAgIChBUEk6OmNvbXBp
bGVkVG9GaWxlKToKKyAgICAgICAgKEFQSTo6Y3JlYXRlRXh0ZW5zaW9uKToKKyAgICAgICAgKEFQ
STo6Z2V0Q29udGVudFJ1bGVMaXN0U291cmNlRnJvbU1hcHBlZEZpbGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaDoKKwogMjAyMS0xMi0wOCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgS1ZPIHdvcmsgZm9y
IFdLV2VicGFnZVByZWZlcmVuY2VzLl9jYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMu
Y3BwCmluZGV4IDRkYTk4OGM1MjFkMTI5Yjc1YjQ5ODA1Y2VlYjVmYjA0ZWZhNmU2YTguLjMzN2Q2
NDhmNzhjZTQ0NzNlMmY0ZjU5ODRjODY5OWNkMzM5NWM1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcApAQCAt
MTQyLDQ4ICsxNDIsNiBAQCBib29sIENvbWJpbmVkVVJMRmlsdGVyczo6aXNFbXB0eSgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcHJlZml4VHJlZVJvb3QtPmVkZ2VzLmlzRW1wdHkoKTsKIH0KIAotdm9p
ZCBDb21iaW5lZFVSTEZpbHRlcnM6OmFkZERvbWFpbih1aW50NjRfdCBhY3Rpb25JZCwgY29uc3Qg
U3RyaW5nJiBkb21haW4pCi17Ci0gICAgdW5zaWduZWQgZG9tYWluTGVuZ3RoID0gZG9tYWluLmxl
bmd0aCgpOwotICAgIGlmIChkb21haW5MZW5ndGggJiYgZG9tYWluWzBdID09ICcqJykgewotICAg
ICAgICAvLyBJZiBkb21haW4gc3RhcnRzIHdpdGggYSAnKicgdGhlbiBpdCBtZWFucyBtYXRjaCBk
b21haW4gYW5kIGl0cyBzdWJkb21haW5zLCBsaWtlIChefC4pZG9tYWluJAotICAgICAgICAvLyBU
aGlzIHdheSBhIGRvbWFpbiBvZiAiKndlYmtpdC5vcmciIHdpbGwgbWF0Y2ggImJ1Z3Mud2Via2l0
Lm9yZyIgYW5kICJ3ZWJraXQub3JnIi4KLSAgICAgICAgVmVjdG9yPFRlcm0+IHByZXBlbmREb3Q7
Ci0gICAgICAgIFZlY3RvcjxUZXJtPiBwcmVwZW5kQmVnaW5uaW5nT2ZMaW5lOwotICAgICAgICBw
cmVwZW5kRG90LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZG9tYWluTGVuZ3RoICsgMik7Ci0gICAg
ICAgIHByZXBlbmRCZWdpbm5pbmdPZkxpbmUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShkb21haW5M
ZW5ndGgpOyAvLyBUaGlzIGlzIGp1c3Qgbm8gLiogYXQgdGhlIGJlZ2lubmluZy4KLSAgICAgICAg
Ci0gICAgICAgIFRlcm0gY2Fub25pY2FsRG90U3RhcihUZXJtOjpVbml2ZXJzYWxUcmFuc2l0aW9u
KTsKLSAgICAgICAgY2Fub25pY2FsRG90U3Rhci5xdWFudGlmeShBdG9tUXVhbnRpZmllcjo6WmVy
b09yTW9yZSk7Ci0gICAgICAgIHByZXBlbmREb3QudW5jaGVja2VkQXBwZW5kKGNhbm9uaWNhbERv
dFN0YXIpOwotICAgICAgICBwcmVwZW5kRG90LnVuY2hlY2tlZEFwcGVuZChUZXJtKCcuJywgdHJ1
ZSkpOwotICAgICAgICAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGRvbWFpbkxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNBU0NJSShkb21haW5baV0pKTsKLSAg
ICAgICAgICAgIEFTU0VSVCghaXNBU0NJSVVwcGVyKGRvbWFpbltpXSkpOwotICAgICAgICAgICAg
cHJlcGVuZERvdC51bmNoZWNrZWRBcHBlbmQoVGVybShkb21haW5baV0sIHRydWUpKTsKLSAgICAg
ICAgICAgIHByZXBlbmRCZWdpbm5pbmdPZkxpbmUudW5jaGVja2VkQXBwZW5kKFRlcm0oZG9tYWlu
W2ldLCB0cnVlKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJlcGVuZERvdC51bmNoZWNrZWRBcHBl
bmQoVGVybTo6RW5kT2ZMaW5lQXNzZXJ0aW9uVGVybSk7Ci0gICAgICAgIHByZXBlbmRCZWdpbm5p
bmdPZkxpbmUudW5jaGVja2VkQXBwZW5kKFRlcm06OkVuZE9mTGluZUFzc2VydGlvblRlcm0pOwot
ICAgICAgICAKLSAgICAgICAgYWRkUGF0dGVybihhY3Rpb25JZCwgcHJlcGVuZERvdCk7Ci0gICAg
ICAgIGFkZFBhdHRlcm4oYWN0aW9uSWQsIHByZXBlbmRCZWdpbm5pbmdPZkxpbmUpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgbGlrZSBhZGRpbmcgXmRvbWFpbiQsIGJ1dCBpbnRl
cnByZXRpbmcgZG9tYWluIGFzIGEgc2VyaWVzIG9mIGNoYXJhY3RlcnMsIG5vdCBhIHJlZ3VsYXIg
ZXhwcmVzc2lvbi4KLSAgICAgICAgLy8gIndlYmtpdC5vcmciIHdpbGwgbWF0Y2ggIndlYmtpdC5v
cmciIGJ1dCBub3QgImJ1Z3Mud2Via2l0Lm9yZyIuCi0gICAgICAgIFZlY3RvcjxUZXJtPiBwcmVw
ZW5kQmVnaW5uaW5nT2ZMaW5lOwotICAgICAgICBwcmVwZW5kQmVnaW5uaW5nT2ZMaW5lLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoZG9tYWluTGVuZ3RoICsgMSk7IC8vIFRoaXMgaXMganVzdCBubyAu
KiBhdCB0aGUgYmVnaW5uaW5nLgotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZG9t
YWluTGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIEFTU0VSVChpc0FTQ0lJKGRvbWFpbltpXSkp
OwotICAgICAgICAgICAgQVNTRVJUKCFpc0FTQ0lJVXBwZXIoZG9tYWluW2ldKSk7Ci0gICAgICAg
ICAgICBwcmVwZW5kQmVnaW5uaW5nT2ZMaW5lLnVuY2hlY2tlZEFwcGVuZChUZXJtKGRvbWFpbltp
XSwgdHJ1ZSkpOwotICAgICAgICB9Ci0gICAgICAgIHByZXBlbmRCZWdpbm5pbmdPZkxpbmUudW5j
aGVja2VkQXBwZW5kKFRlcm06OkVuZE9mTGluZUFzc2VydGlvblRlcm0pOwotICAgICAgICBhZGRQ
YXR0ZXJuKGFjdGlvbklkLCBwcmVwZW5kQmVnaW5uaW5nT2ZMaW5lKTsKLSAgICB9Ci19Ci0KIHZv
aWQgQ29tYmluZWRVUkxGaWx0ZXJzOjphZGRQYXR0ZXJuKHVpbnQ2NF90IGFjdGlvbklkLCBjb25z
dCBWZWN0b3I8VGVybT4mIHBhdHRlcm4pCiB7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGF0
dGVybi5pc0VtcHR5KCksICJUaGUgcGFyc2VyIHNob3VsZCBoYXZlIGV4Y2x1ZGVkIGVtcHR5IHBh
dHRlcm5zIGJlZm9yZSByZWFjaGluZyBDb21iaW5lZFVSTEZpbHRlcnMuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuaCBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5oCmlu
ZGV4IDVjYTUyMDRjYmYzNzBlNTQxYWI0ZjQ5OGI3NDg1NTFlZjIyZjdiMjEuLjNiMjc0ZjAyMDY0
YjNiZDY0NDA1YWJiYWI5MmI5ZjdjNDc2MDlmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5oCkBAIC00NSw4ICs0NSw2
IEBAIHB1YmxpYzoKICAgICB+Q29tYmluZWRVUkxGaWx0ZXJzKCk7CiAKICAgICB2b2lkIGFkZFBh
dHRlcm4odWludDY0X3QgYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxUZXJtPiYgcGF0dGVybik7Ci0g
ICAgdm9pZCBhZGREb21haW4odWludDY0X3QgYWN0aW9uSWQsIGNvbnN0IFN0cmluZyYgZG9tYWlu
KTsKLQogICAgIGJvb2wgcHJvY2Vzc05GQXMoc2l6ZV90IG1heE5GQVNpemUsIEZ1bmN0aW9uPGJv
b2woTkZBJiYpPiYmKTsKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRl
bnNpb24uaAppbmRleCA0NDI0NmY2YWQ4YjM2NWNlMWY1YjVkMzJiMjY0ZDFiYTNmODRjYWE2Li5l
NjYxMTZhZjlkMTgzYWY2NDg3YjFkNGFlYzk0YjI0ZWRkY2UzYmQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRlbnNpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRl
bnNpb24uaApAQCAtNDMsNyArNDMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTcGFuPGNvbnN0
IHVpbnQ4X3Q+IHRvcFVSTEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IFNwYW48Y29uc3QgdWludDhfdD4gZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNlcmlhbGl6ZWRBY3Rpb25zKCkgY29u
c3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4oKSBj
b25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uLmNwcAppbmRleCBhY2Q0ZjY0MWEyZjk5MjUwYTNjNzhkNWQ3ZTU1OGU3MDRiN2IxZTJm
Li5lODdjNDIxYjY3N2MzYTQ4YTQwYTk5ZTY0YjM4ZGViMWRiMzVjODNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcApA
QCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgQ29udGVudEV4dGVuc2lvbjo6cG9wdWxhdGVDb25kaXRp
b25DYWNoZUlmTmVlZGVkKGNvbnN0IFVSTCYgdG9wVVJMKQogICAgIGlmIChtX2NhY2hlZFRvcFVS
TCAhPSB0b3BVUkwpIHsKICAgICAgICAgREZBQnl0ZWNvZGVJbnRlcnByZXRlciBpbnRlcnByZXRl
cihtX2NvbXBpbGVkRXh0ZW5zaW9uLT50b3BVUkxGaWx0ZXJzQnl0ZWNvZGUoKSk7CiAgICAgICAg
IGNvbnN0ZXhwciBSZXNvdXJjZUZsYWdzIGFsbExvYWRUeXBlc0FuZFJlc291cmNlVHlwZXMgPSBM
b2FkVHlwZU1hc2sgfCBSZXNvdXJjZVR5cGVNYXNrIHwgTG9hZENvbnRleHRNYXNrOwotICAgICAg
ICBTdHJpbmcgc3RyaW5nID0gbV9jb21waWxlZEV4dGVuc2lvbi0+Y29uZGl0aW9uc0FwcGx5T25s
eVRvRG9tYWluKCkgPyB0b3BVUkwuaG9zdCgpLnRvU3RyaW5nKCkgOiB0b3BVUkwuc3RyaW5nKCk7
CisgICAgICAgIFN0cmluZyBzdHJpbmcgPSB0b3BVUkwuc3RyaW5nKCk7CiAgICAgICAgIGF1dG8g
dG9wVVJMQWN0aW9ucyA9IGludGVycHJldGVyLmludGVycHJldChzdHJpbmcudXRmOCgpLCBhbGxM
b2FkVHlwZXNBbmRSZXNvdXJjZVR5cGVzKTsKICAgICAgICAgCiAgICAgICAgIG1fY2FjaGVkVG9w
VVJMQWN0aW9ucy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKaW5kZXggNDkzNzIy
MWE3NTA3YjdmODE2ZDQzYjk5NDIwMzdiODlkNmQzYjEyYS4uODkyMGU0YmQ4NjhhZDAxMGRkOWIy
YmY2MGI2OTEyYjc3ZGJkNDY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCkBAIC0yNzks
MjUgKzI3OSw2IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVu
c2lvbkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgfSk7CiAjZW5kaWYKIAot
ICAgIGJvb2wgZG9tYWluQ29uZGl0aW9uU2VlbiA9IGZhbHNlOwotICAgIGJvb2wgdG9wVVJMQ29u
ZGl0aW9uU2VlbiA9IGZhbHNlOwotICAgIGZvciAoY29uc3QgYXV0byYgcnVsZSA6IHBhcnNlZFJ1
bGVMaXN0KSB7Ci0gICAgICAgIHN3aXRjaCAocnVsZS50cmlnZ2VyKCkuY29uZGl0aW9uVHlwZSkg
ewotICAgICAgICBjYXNlIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6Ok5vbmU6Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBUcmlnZ2VyOjpDb25kaXRpb25UeXBlOjpJZkRvbWFpbjoK
LSAgICAgICAgY2FzZSBUcmlnZ2VyOjpDb25kaXRpb25UeXBlOjpVbmxlc3NEb21haW46Ci0gICAg
ICAgICAgICBkb21haW5Db25kaXRpb25TZWVuID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmVG9wVVJMOgotICAgICAgICBj
YXNlIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OlVubGVzc1RvcFVSTDoKLSAgICAgICAgICAgIHRv
cFVSTENvbmRpdGlvblNlZW4gPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgaWYgKHRvcFVSTENvbmRpdGlvblNlZW4gJiYgZG9tYWluQ29uZGl0aW9uU2Vl
bikKLSAgICAgICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvcFVSTEFuZERv
bWFpbkNvbmRpdGlvbnM7Ci0KICNpZiBDT05URU5UX0VYVEVOU0lPTlNfUEVSRk9STUFOQ0VfUkVQ
T1JUSU5HCiAgICAgTW9ub3RvbmljVGltZSBwYXR0ZXJuUGFydGl0aW9uaW5nU3RhcnQgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKICNlbmRpZgpAQCAtMzA3LDcgKzI4OCw3IEBAIHN0ZDo6ZXJyb3Jf
Y29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50JiBj
bGllbnQsIFN0cmluCiAgICAgVmVjdG9yPFNlcmlhbGl6ZWRBY3Rpb25CeXRlPiBhY3Rpb25zOwog
ICAgIFZlY3Rvcjx1bnNpZ25lZD4gYWN0aW9uTG9jYXRpb25zID0gc2VyaWFsaXplQWN0aW9ucyhw
YXJzZWRSdWxlTGlzdCwgYWN0aW9ucyk7CiAgICAgTE9HX0xBUkdFX1NUUlVDVFVSRVMoYWN0aW9u
cywgYWN0aW9ucy5jYXBhY2l0eSgpICogc2l6ZW9mKFNlcmlhbGl6ZWRBY3Rpb25CeXRlKSk7Ci0g
ICAgY2xpZW50LndyaXRlQWN0aW9ucyhXVEZNb3ZlKGFjdGlvbnMpLCBkb21haW5Db25kaXRpb25T
ZWVuKTsKKyAgICBjbGllbnQud3JpdGVBY3Rpb25zKFdURk1vdmUoYWN0aW9ucykpOwogCiAgICAg
VW5pdmVyc2FsQWN0aW9uU2V0IHVuaXZlcnNhbEFjdGlvbnNXaXRob3V0Q29uZGl0aW9uczsKICAg
ICBVbml2ZXJzYWxBY3Rpb25TZXQgdW5pdmVyc2FsQWN0aW9uc1dpdGhDb25kaXRpb25zOwpAQCAt
MzQ0LDEyICszMjUsMTAgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50
RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHN3aXRjaCAodHJpZ2dlci5jb25kaXRpb25U
eXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmRG9tYWlu
OgogICAgICAgICAgICAgY2FzZSBUcmlnZ2VyOjpDb25kaXRpb25UeXBlOjpJZlRvcFVSTDoKICAg
ICAgICAgICAgICAgICBhY3Rpb25Mb2NhdGlvbkFuZEZsYWdzIHw9IElmQ29uZGl0aW9uRmxhZzsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVHJpZ2dlcjo6Q29uZGl0
aW9uVHlwZTo6Tm9uZToKLSAgICAgICAgICAgIGNhc2UgVHJpZ2dlcjo6Q29uZGl0aW9uVHlwZTo6
VW5sZXNzRG9tYWluOgogICAgICAgICAgICAgY2FzZSBUcmlnZ2VyOjpDb25kaXRpb25UeXBlOjpV
bmxlc3NUb3BVUkw6CiAgICAgICAgICAgICAgICAgQVNTRVJUKCEoYWN0aW9uTG9jYXRpb25BbmRG
bGFncyAmIElmQ29uZGl0aW9uRmxhZykpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzY1
LDIwICszNDQsMTQgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0
ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgICAgICBy
ZXR1cm4gQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgZm9yIChjb25zdCBTdHJpbmcmIGNvbmRpdGlvbiA6IHRyaWdnZXIu
Y29uZGl0aW9ucykgewotICAgICAgICAgICAgICAgIGlmIChkb21haW5Db25kaXRpb25TZWVuKSB7
Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVCghdG9wVVJMQ29uZGl0aW9uU2Vlbik7Ci0gICAg
ICAgICAgICAgICAgICAgIHRvcFVSTEZpbHRlcnMuYWRkRG9tYWluKGFjdGlvbkxvY2F0aW9uQW5k
RmxhZ3MsIGNvbmRpdGlvbik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKHRvcFVSTENvbmRpdGlvblNlZW4pOwotICAgICAgICAgICAgICAgICAg
ICBzdGF0dXMgPSB0b3BVUkxGaWx0ZXJQYXJzZXIuYWRkUGF0dGVybihjb25kaXRpb24sIHRyaWdn
ZXIudG9wVVJMQ29uZGl0aW9uSXNDYXNlU2Vuc2l0aXZlLCBhY3Rpb25Mb2NhdGlvbkFuZEZsYWdz
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBVUkxGaWx0ZXJQYXJzZXI6Ok1h
dGNoZXNFdmVyeXRoaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bml2ZXJzYWxUb3BV
UkxBY3Rpb25zLmFkZChhY3Rpb25Mb2NhdGlvbkFuZEZsYWdzKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9r
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2lu
ZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0
YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKLSAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXR1cyA9IHRvcFVSTEZpbHRlclBh
cnNlci5hZGRQYXR0ZXJuKGNvbmRpdGlvbiwgdHJpZ2dlci50b3BVUkxDb25kaXRpb25Jc0Nhc2VT
ZW5zaXRpdmUsIGFjdGlvbkxvY2F0aW9uQW5kRmxhZ3MpOworICAgICAgICAgICAgICAgIGlmIChz
dGF0dXMgPT0gVVJMRmlsdGVyUGFyc2VyOjpNYXRjaGVzRXZlcnl0aGluZykgeworICAgICAgICAg
ICAgICAgICAgICB1bml2ZXJzYWxUb3BVUkxBY3Rpb25zLmFkZChhY3Rpb25Mb2NhdGlvbkFuZEZs
YWdzKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gVVJMRmlsdGVyUGFyc2VyOjpPazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0
ZXJQYXJzZXI6Ok9rKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGls
ZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBh
cnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21w
aWxlci5oCmluZGV4IGViMzI5NmEwOTc5NDcxNDI4Yzg5MDJkZmQ2MzdiMDRjMGVkZjE5YWIuLjVi
ZWRkM2VjMTM0NDRhMjE5NTBhOTMxNzM3MmY4MWEwZmNiY2E5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21w
aWxlci5oCkBAIC0zMiw4ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBDb250ZW50
RXh0ZW5zaW9ucyB7CituYW1lc3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnMgewogCiBj
bGFzcyBDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQgewogcHVibGljOgpAQCAtNDEs
NyArNDAsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gRnVuY3Rpb25zIHNob3VsZCBiZSBjYWxs
ZWQgaW4gdGhpcyBvcmRlci4gQWxsIGV4Y2VwdCB3cml0ZUFjdGlvbnMgYW5kIGZpbmFsaXplIGNh
biBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMsIHRob3VnaC4KICAgICB2aXJ0dWFsIHZvaWQgd3Jp
dGVTb3VyY2UoU3RyaW5nJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGVBY3Rpb25zKFZl
Y3RvcjxTZXJpYWxpemVkQWN0aW9uQnl0ZT4mJiwgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9E
b21haW4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVBY3Rpb25zKFZlY3RvcjxTZXJpYWxp
emVkQWN0aW9uQnl0ZT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUZpbHRlcnNXaXRo
b3V0Q29uZGl0aW9uc0J5dGVjb2RlKFZlY3RvcjxERkFCeXRlY29kZT4mJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCB3cml0ZUZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlKFZlY3RvcjxERkFC
eXRlY29kZT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvcFVSTEZpbHRlcnNCeXRl
Y29kZShWZWN0b3I8REZBQnl0ZWNvZGU+JiYpID0gMDsKQEAgLTUwLDcgKzQ5LDYgQEAgcHVibGlj
OgogCiBXRUJDT1JFX0VYUE9SVCBzdGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRl
bnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCYsIFN0cmluZyYmIHJ1bGVKU09OLCBWZWN0b3I8
Q29udGVudEV4dGVuc2lvblJ1bGU+JiYpOwogCi19IC8vIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5z
aW9ucwotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnMKIAogI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uRXJyb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbkVycm9yLmNwcAppbmRleCA1OGZiYjk4NDJhMTU2Y2JlNTRiOTlmODM5NDUwY2FjZjM4
MDJlNDQ2Li42NDliZDcwZjY1MTA0NTM4ZGMxODhmNDQ4Y2UxNGY2YWU0MDg0YWZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRl
bnNpb25FcnJvci5jcHAKQEAgLTgxLDggKzgxLDYgQEAgY29uc3Qgc3RkOjplcnJvcl9jYXRlZ29y
eSYgY29udGVudEV4dGVuc2lvbkVycm9yQ2F0ZWdvcnkoKQogICAgICAgICAgICAgICAgIHJldHVy
biAiRG9tYWlucyBtdXN0IGJlIGxvd2VyIGNhc2UgQVNDSUkuIFVzZSBwdW55Y29kZSB0byBlbmNv
ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIjsKICAgICAgICAgICAgIGNhc2UgQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OTXVsdGlwbGVDb25kaXRpb25zOgogICAgICAgICAgICAgICAgIHJldHVy
biAiQSB0cmlnZ2VyIGNhbm5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgY29uZGl0aW9uIChpZi1kb21h
aW4sIHVubGVzcy1kb21haW4sIGlmLXRvcC11cmwsIG9yIHVubGVzcy10b3AtdXJsKSI7Ci0gICAg
ICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvcFVSTEFuZERvbWFpbkNv
bmRpdGlvbnM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJBIGxpc3QgY2Fubm90IGhhdmUgaWYt
ZG9tYWluIGFuZCB1bmxlc3MtZG9tYWluIG1peGVkIHdpdGggaWYtdG9wLXVybCBhbmQgdW5sZXNz
LXRvcC11cmwiOwogICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05J
bnZhbGlkTm90aWZpY2F0aW9uOgogICAgICAgICAgICAgICAgIHJldHVybiAiQSBub3RpZnkgYWN0
aW9uIG11c3QgaGF2ZSBhIHN0cmluZyBub3RpZmljYXRpb24iOwogICAgICAgICAgICAgY2FzZSBD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkVycm9yV3JpdGluZ1NlcmlhbGl6ZWRORkE6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJy
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25F
cnJvci5oCmluZGV4IGFhZmZiNmY4OTMwNGU2MDRhZWRmYjZhYzM4YmI2ZmEyOTA0NDU1ZWIuLmEy
NDVkOTNlNTAyNGQyMzllNjNkNGNkNjJjY2IxOGU2ZDE1OTk3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5o
CkBAIC00OSw3ICs0OSw2IEBAIGVudW0gY2xhc3MgQ29udGVudEV4dGVuc2lvbkVycm9yIHsKICAg
ICBKU09OSW52YWxpZENvbmRpdGlvbkxpc3QsCiAgICAgSlNPTkRvbWFpbk5vdExvd2VyQ2FzZUFT
Q0lJLAogICAgIEpTT05NdWx0aXBsZUNvbmRpdGlvbnMsCi0gICAgSlNPTlRvcFVSTEFuZERvbWFp
bkNvbmRpdGlvbnMsCiAgICAgSlNPTlRvb01hbnlSdWxlcywKICAgICAKICAgICBKU09OSW52YWxp
ZEFjdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKaW5kZXggYmQ1Y2QyZmRjNGMyY2QyNzFmZmNm
MDFlM2Y0ZmIwMTYyN2RhOTllOS4uMTY4ZjhjZjBkZjg3YThlMWM2NmFlN2FiMjIwNWM4OTcxN2Rk
ZmMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKQEAgLTM4LDkgKzM4LDcgQEAKICNpbmNsdWRl
IDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLW5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB7CituYW1l
c3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnMgewogICAgIAogc3RhdGljIGJvb2wgY29u
dGFpbnNPbmx5QVNDSUlXaXRoTm9VcHBlcmNhc2UoY29uc3QgU3RyaW5nJiBkb21haW4pCiB7CkBA
IC02NiwxNSArNjQsNDIgQEAgc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVy
cm9yX2NvZGU+IGdldFN0cmluZ0xpc3QoY29uc3QgSlNPTjo6QXJyYXkKIAogc3RhdGljIEV4cGVj
dGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVycm9yX2NvZGU+IGdldERvbWFpbkxpc3QoY29uc3Qg
SlNPTjo6QXJyYXkmIGFycmF5T2JqZWN0KQogewotICAgIGF1dG8gc3RyaW5ncyA9IGdldFN0cmlu
Z0xpc3QoYXJyYXlPYmplY3QpOwotICAgIGlmICghc3RyaW5ncy5oYXNfdmFsdWUoKSkKLSAgICAg
ICAgcmV0dXJuIHN0cmluZ3M7Ci0gICAgZm9yIChhdXRvJiBkb21haW4gOiBzdHJpbmdzLnZhbHVl
KCkpIHsKKyAgICBhdXRvIGRvbWFpbnMgPSBnZXRTdHJpbmdMaXN0KGFycmF5T2JqZWN0KTsKKyAg
ICBpZiAoIWRvbWFpbnMpCisgICAgICAgIHJldHVybiBkb21haW5zOworICAgIAorICAgIFZlY3Rv
cjxTdHJpbmc+IHJlZ2V4ZXM7CisgICAgcmVnZXhlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRv
bWFpbnMtPnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBkb21haW4gOiAqZG9tYWlucykgewogICAg
ICAgICAvLyBEb21haW5zIHNob3VsZCBiZSBwdW55Y29kZSBlbmNvZGVkIGxvd2VyIGNhc2UuCiAg
ICAgICAgIGlmICghY29udGFpbnNPbmx5QVNDSUlXaXRoTm9VcHBlcmNhc2UoZG9tYWluKSkKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05Eb21haW5Ob3RMb3dlckNhc2VBU0NJSSk7CisKKyAgICAgICAgYm9vbCBhbGxvd1N1YmRvbWFp
bnMgPSBmYWxzZTsKKyAgICAgICAgaWYgKGRvbWFpbi5zdGFydHNXaXRoKCcqJykpIHsKKyAgICAg
ICAgICAgIGFsbG93U3ViZG9tYWlucyA9IHRydWU7CisgICAgICAgICAgICBkb21haW4gPSBkb21h
aW4uc3Vic3RyaW5nKDEpOworICAgICAgICB9CisKKyAgICAgICAgc3RkOjphcnJheTxzdGQ6OnBh
aXI8VUNoYXIsIGNvbnN0IGNoYXIqPiwgOT4gZXNjYXBlVGFibGUgeyB7CisgICAgICAgICAgICB7
ICdcXCcsICJcXFxcIiB9LAorICAgICAgICAgICAgeyAneycsICJcXHsiIH0sCisgICAgICAgICAg
ICB7ICd9JywgIlxcfSIgfSwKKyAgICAgICAgICAgIHsgJ1snLCAiXFxbIiB9LAorICAgICAgICAg
ICAgeyAnWycsICJcXFsiIH0sCisgICAgICAgICAgICB7ICcuJywgIlxcLiIgfSwKKyAgICAgICAg
ICAgIHsgJz8nLCAiXFw/IiB9LAorICAgICAgICAgICAgeyAnKicsICJcXCoiIH0sCisgICAgICAg
ICAgICB7ICckJywgIlxcJCIgfQorICAgICAgICB9IH07CisgICAgICAgIGZvciAoYXV0byYgcGFp
ciA6IGVzY2FwZVRhYmxlKQorICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJlcGxhY2UocGFp
ci5maXJzdCwgcGFpci5zZWNvbmQpOworCisgICAgICAgIGNvbnN0IGNoYXIqIHByb3RvY29sUmVn
ZXggPSAiW2Etel1bYS16Ky4tXSo6XFwvXFwvIjsKKyAgICAgICAgY29uc3QgY2hhciogYWxsb3dT
dWJkb21haW5zUmVnZXggPSAiKC4qXFwuKSoiOworICAgICAgICByZWdleGVzLnVuY2hlY2tlZEFw
cGVuZChtYWtlU3RyaW5nKHByb3RvY29sUmVnZXgsIGFsbG93U3ViZG9tYWlucyA/IGFsbG93U3Vi
ZG9tYWluc1JlZ2V4IDogIiIsIGRvbWFpbiwgIlxcLyIpKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0
cmluZ3M7CisgICAgcmV0dXJuIHJlZ2V4ZXM7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBA
IC0xNTQsMTAgKzE3OSwxMCBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9j
b2RlPiBsb2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICByZXR1
cm4geyB9OwogICAgIH07CiAKLSAgICBpZiAoYXV0byBlcnJvciA9IGNoZWNrQ29uZGl0aW9uKCJp
Zi1kb21haW4iX3MsIGdldERvbWFpbkxpc3QsIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmRG9t
YWluKSkKKyAgICBpZiAoYXV0byBlcnJvciA9IGNoZWNrQ29uZGl0aW9uKCJpZi1kb21haW4iX3Ms
IGdldERvbWFpbkxpc3QsIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmVG9wVVJMKSkKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKIAotICAgIGlmIChhdXRvIGVycm9yID0g
Y2hlY2tDb25kaXRpb24oInVubGVzcy1kb21haW4iX3MsIGdldERvbWFpbkxpc3QsIFRyaWdnZXI6
OkNvbmRpdGlvblR5cGU6OlVubGVzc0RvbWFpbikpCisgICAgaWYgKGF1dG8gZXJyb3IgPSBjaGVj
a0NvbmRpdGlvbigidW5sZXNzLWRvbWFpbiJfcywgZ2V0RG9tYWluTGlzdCwgVHJpZ2dlcjo6Q29u
ZGl0aW9uVHlwZTo6VW5sZXNzVG9wVVJMKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KGVycm9yKTsKIAogICAgIGlmIChhdXRvIGVycm9yID0gY2hlY2tDb25kaXRpb24oImlmLXRvcC11
cmwiX3MsIGdldFN0cmluZ0xpc3QsIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmVG9wVVJMKSkK
QEAgLTI5NCw3ICszMTksNiBAQCBFeHBlY3RlZDxWZWN0b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+
LCBzdGQ6OmVycm9yX2NvZGU+IHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaQogICAgIHJldHVybiBy
dWxlTGlzdDsKIH0KIAotfSAvLyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblJ1bGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25SdWxlLmgKaW5k
ZXggZTJlMzk2ZDRmZTFhY2U2ZDE0ZjMxNDhkMjdiOWU2MjU1N2UwODIyZS4uOTMwZjVmZmU2Y2Jk
YmQ3NjgzMDJlZDIyMjA1YTZjMTE3ZTc3NzAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblJ1bGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUnVsZS5oCkBAIC00NywxMCAr
NDcsOCBAQCBzdHJ1Y3QgVHJpZ2dlciB7CiAgICAgYm9vbCB0b3BVUkxDb25kaXRpb25Jc0Nhc2VT
ZW5zaXRpdmUgeyBmYWxzZSB9OwogICAgIFJlc291cmNlRmxhZ3MgZmxhZ3MgeyAwIH07CiAgICAg
VmVjdG9yPFN0cmluZz4gY29uZGl0aW9uczsKLSAgICBlbnVtIGNsYXNzIENvbmRpdGlvblR5cGUg
eworICAgIGVudW0gY2xhc3MgQ29uZGl0aW9uVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb25l
LAotICAgICAgICBJZkRvbWFpbiwKLSAgICAgICAgVW5sZXNzRG9tYWluLAogICAgICAgICBJZlRv
cFVSTCwKICAgICAgICAgVW5sZXNzVG9wVVJMLAogICAgIH0gY29uZGl0aW9uVHlwZSB7IENvbmRp
dGlvblR5cGU6Ok5vbmUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0LmNwcAppbmRleCA1YTJhNTI1OTNiNTBmYmJiYmU0NTIwMDc0ZWIw
ZjkzMmMyNjU0Y2RjLi45YzlmOGMwZDUzNmEwNjc2MGMwMjcxY2EzODEzNjZmY2I4YjE2YzUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3QuY3BwCkBAIC00NCwxMSArNDQsNiBAQCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6fldl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0KCkKIHsKIH0KIAotYm9vbCBXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdDo6Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9kYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKLX0KLQogU3Bhbjxjb25z
dCB1aW50OF90PiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhvdXRDb25k
aXRpb25zQnl0ZWNvZGUoKSBjb25zdAogewogICAgIHJldHVybiBzcGFuV2l0aE9mZnNldEFuZExl
bmd0aChtX2RhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIG1fZGF0
YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmgKaW5kZXggYzM0MzRhZWQ1
ODJiN2NjZDdmZGU2ZDE0MmRiYTM5NTQxNWMwMWY1Zi4uYjAyMTFiMmFmM2NlMzBiODE4Y2Q4YTNl
ODk3ZWI2NGQxYmFmODU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdC5oCkBAIC00OCw3ICs0OCw2IEBAIHByaXZhdGU6CiAgICAgU3Bh
bjxjb25zdCB1aW50OF90PiB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdCBmaW5hbDsKICAg
ICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgZmlu
YWw7CiAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBzZXJpYWxpemVkQWN0aW9ucygpIGNvbnN0IGZp
bmFsOwotICAgIGJvb2wgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QgZmluYWw7
CiAgICAgCiAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBzcGFuV2l0aE9mZnNldEFuZExlbmd0aChz
aXplX3QsIHNpemVfdCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3BwCmluZGV4IGZkZTgzYzJhNmU1OTEz
N2ViZGRlYjNiZGU5OWY3MzQyZjY2N2Y4NTIuLmVmZGM1MzQ2MGZkM2NmNTg0Y2MyMjI5MGFjNTBl
OTE3YTcwYmQyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcApAQCAtNDksNyArNDksNiBAQCB2b2lkIFdlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKICNlbmRpZgogICAgIGVuY29kZXIgPDwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBX
VEZNb3ZlKGhhbmRsZSksIGRhdGFTaXplIH07CiAKLSAgICBlbmNvZGVyIDw8IGNvbmRpdGlvbnNB
cHBseU9ubHlUb0RvbWFpbjsKICAgICBlbmNvZGVyIDw8IGFjdGlvbnNPZmZzZXQ7CiAgICAgZW5j
b2RlciA8PCBhY3Rpb25zU2l6ZTsKICAgICBlbmNvZGVyIDw8IGZpbHRlcnNXaXRob3V0Q29uZGl0
aW9uc0J5dGVjb2RlT2Zmc2V0OwpAQCAtNzYsMTEgKzc1LDYgQEAgc3RkOjpvcHRpb25hbDxXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6ZGUKICAgICBpZiAoIWRhdGEpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAg
ICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKLSAgICBk
ZWNvZGVyID4+IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKLSAgICBpZiAoIWNvbmRpdGlv
bnNBcHBseU9ubHlUb0RvbWFpbikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQogICAg
IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBhY3Rpb25zT2Zmc2V0OwogICAgIGRlY29kZXIgPj4gYWN0
aW9uc09mZnNldDsKICAgICBpZiAoIWFjdGlvbnNPZmZzZXQpCkBAIC0xMzQsNyArMTI4LDYgQEAg
c3RkOjpvcHRpb25hbDxXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+IFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YTo6ZGUKICAgICByZXR1cm4ge3sKICAgICAgICAgV1RGTW92ZSgq
aWRlbnRpZmllciksCiAgICAgICAgIGRhdGEucmVsZWFzZU5vbk51bGwoKSwKLSAgICAgICAgV1RG
TW92ZSgqY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKSwKICAgICAgICAgV1RGTW92ZSgqYWN0
aW9uc09mZnNldCksCiAgICAgICAgIFdURk1vdmUoKmFjdGlvbnNTaXplKSwKICAgICAgICAgV1RG
TW92ZSgqZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQpLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaApp
bmRleCBkMTRjMjEwYjA0MTlkODA5ZDk3Zjc4MDk1ZTBkYjMzYjY3MjNiMjc5Li5jYjA1NjI4MjU5
ZDY5NWQzNTRkYWQxODNjOGI2ZGJjMzhlODg0YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaApAQCAtNDEsMTAgKzQx
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YSB7CiBwdWJsaWM6Ci0gICAgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKFN0
cmluZyYmIGlkZW50aWZpZXIsIFJlZjxTaGFyZWRNZW1vcnk+JiYgZGF0YSwgYm9vbCBjb25kaXRp
b25zQXBwbHlPbmx5VG9Eb21haW4sIHNpemVfdCBhY3Rpb25zT2Zmc2V0LCBzaXplX3QgYWN0aW9u
c1NpemUsIHNpemVfdCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgc2l6
ZV90IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgc2l6ZV90IGZpbHRlcnNX
aXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3QgZmlsdGVyc1dpdGhDb25kaXRpb25z
Qnl0ZWNvZGVTaXplLCBzaXplX3QgdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3Qg
dG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSwgc2l6ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2Rl
T2Zmc2V0LCBzaXplX3QgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQorICAgIFdlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0RGF0YShTdHJpbmcmJiBpZGVudGlmaWVyLCBSZWY8U2hhcmVkTWVt
b3J5PiYmIGRhdGEsIHNpemVfdCBhY3Rpb25zT2Zmc2V0LCBzaXplX3QgYWN0aW9uc1NpemUsIHNp
emVfdCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IGZpbHRl
cnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgc2l6ZV90IGZpbHRlcnNXaXRoQ29uZGl0
aW9uc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3QgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVT
aXplLCBzaXplX3QgdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3QgdG9wVVJMRmls
dGVyc0J5dGVjb2RlU2l6ZSwgc2l6ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCBz
aXplX3QgZnJhbWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQogICAgICAgICA6IGlkZW50aWZpZXIo
V1RGTW92ZShpZGVudGlmaWVyKSkKICAgICAgICAgLCBkYXRhKFdURk1vdmUoZGF0YSkpCi0gICAg
ICAgICwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKGNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbikKICAgICAgICAgLCBhY3Rpb25zT2Zmc2V0KGFjdGlvbnNPZmZzZXQpCiAgICAgICAgICwg
YWN0aW9uc1NpemUoYWN0aW9uc1NpemUpCiAgICAgICAgICwgZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVPZmZzZXQoZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQp
CkBAIC02Myw3ICs2Miw2IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBpZGVudGlmaWVyOwogICAg
IFJlZjxTaGFyZWRNZW1vcnk+IGRhdGE7Ci0gICAgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9E
b21haW4geyAwIH07CiAgICAgc2l6ZV90IGFjdGlvbnNPZmZzZXQgeyAwIH07CiAgICAgc2l6ZV90
IGFjdGlvbnNTaXplIHsgMCB9OwogICAgIHNpemVfdCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNC
eXRlY29kZU9mZnNldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCmluZGV4IDM2YTZmNGZiMDdmMGFiOWRk
YzdhNDYxOGZlZDQyMmVjMzg5NzQwMzUuLjY0NDkxZTE2MmVjNmM1YmNmYTNmYzRjYjI0OWY4ZDlj
Y2I2MzliMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250
ZW50UnVsZUxpc3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcApAQCAtMTEyLDkgKzExMiw5IEBAIHN0cnVjdCBDb250
ZW50UnVsZUxpc3RNZXRhRGF0YSB7CiAgICAgdWludDY0X3QgZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVTaXplIHsgMCB9OwogICAgIHVpbnQ2NF90IGZpbHRlcnNXaXRoQ29uZGl0aW9u
c0J5dGVjb2RlU2l6ZSB7IDAgfTsKICAgICB1aW50NjRfdCBjb25kaXRpb25lZEZpbHRlcnNCeXRl
Y29kZVNpemUgeyAwIH07Ci0gICAgdWludDMyX3QgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
IHsgZmFsc2UgfTsKKyAgICB1aW50MzJfdCB1bnVzZWQzMmJpdHMgeyBmYWxzZSB9OwogICAgIHVp
bnQ2NF90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSB7IDAgfTsKLSAgICB1aW50NjRfdCB1
bnVzZWQgeyAwIH07IC8vIEFkZGl0aW9uYWwgc3BhY2Ugb24gZGlzayByZXNlcnZlZCBzbyB3ZSBj
YW4gYWRkIHNvbWV0aGluZyB3aXRob3V0IGluY3JlbWVudGluZyB0aGUgdmVyc2lvbiBudW1iZXIu
CisgICAgdWludDY0X3QgdW51c2VkNjRiaXRzIHsgMCB9OyAvLyBBZGRpdGlvbmFsIHNwYWNlIG9u
IGRpc2sgcmVzZXJ2ZWQgc28gd2UgY2FuIGFkZCBzb21ldGhpbmcgd2l0aG91dCBpbmNyZW1lbnRp
bmcgdGhlIHZlcnNpb24gbnVtYmVyLgogICAgIAogICAgIHNpemVfdCBmaWxlU2l6ZSgpIGNvbnN0
CiAgICAgewpAQCAtMTM4LDkgKzEzOCw5IEBAIHN0YXRpYyBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
RGF0YSBlbmNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YShjb25zdCBDb250ZW50UnVsCiAgICAg
ZW5jb2RlciA8PCBtZXRhRGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemU7
CiAgICAgZW5jb2RlciA8PCBtZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNp
emU7CiAgICAgZW5jb2RlciA8PCBtZXRhRGF0YS5jb25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNp
emU7Ci0gICAgZW5jb2RlciA8PCBtZXRhRGF0YS5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW47
CisgICAgZW5jb2RlciA8PCBtZXRhRGF0YS51bnVzZWQzMmJpdHM7CiAgICAgZW5jb2RlciA8PCBt
ZXRhRGF0YS5mcmFtZVVSTEZpbHRlcnNCeXRlY29kZVNpemU7Ci0gICAgZW5jb2RlciA8PCBtZXRh
RGF0YS51bnVzZWQ7CisgICAgZW5jb2RlciA8PCBtZXRhRGF0YS51bnVzZWQ2NGJpdHM7CiAKICAg
ICBBU1NFUlQoZW5jb2Rlci5idWZmZXJTaXplKCkgPT0gQ3VycmVudFZlcnNpb25GaWxlSGVhZGVy
U2l6ZSk7CiAgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhKGVuY29kZXIuYnVm
ZmVyKCksIGVuY29kZXIuYnVmZmVyU2l6ZSgpKTsKQEAgLTE5OSwxMSArMTk5LDExIEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250ZW50UnVs
ZUxpc3RNZXRhRGF0YShjb25zCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgbWV0
YURhdGEuY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplID0gV1RGTW92ZSgqY29uZGl0aW9u
ZWRGaWx0ZXJzQnl0ZWNvZGVTaXplKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGNv
bmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKLSAgICBkZWNvZGVyID4+IGNvbmRpdGlvbnNBcHBs
eU9ubHlUb0RvbWFpbjsKLSAgICBpZiAoIWNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbikKKyAg
ICBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiB1bnVzZWQzMmJpdHM7CisgICAgZGVjb2RlciA+PiB1
bnVzZWQzMmJpdHM7CisgICAgaWYgKCF1bnVzZWQzMmJpdHMpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgbWV0YURhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluID0gV1RG
TW92ZSgqY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKTsKKyAgICBtZXRhRGF0YS51bnVzZWQz
MmJpdHMgPSAwOwogCiAgICAgaWYgKG1ldGFEYXRhLnZlcnNpb24gPCAxMikKICAgICAgICAgcmV0
dXJuIG1ldGFEYXRhOwpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENv
bnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YShjb25z
CiAgICAgZGVjb2RlciA+PiB1bnVzZWQ7CiAgICAgaWYgKCF1bnVzZWQpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0gICAgbWV0YURhdGEudW51c2VkID0gMDsKKyAgICBtZXRhRGF0YS51
bnVzZWQ2NGJpdHMgPSAwOwogCiAgICAgcmV0dXJuIG1ldGFEYXRhOwogfQpAQCAtMjY5LDcgKzI2
OSw2IEBAIHN0YXRpYyBFeHBlY3RlZDxNYXBwZWREYXRhLCBzdGQ6OmVycm9yX2NvZGU+IGNvbXBp
bGVkVG9GaWxlKFdURjo6U3RyaW5nJiYganNvbiwKICAgICAgICAgICAgIEFTU0VSVCghbWV0YURh
dGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplKTsKICAgICAgICAgICAgIEFT
U0VSVCghbWV0YURhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplKTsKICAgICAg
ICAgICAgIEFTU0VSVCghbWV0YURhdGEuY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplKTsK
LSAgICAgICAgICAgIEFTU0VSVCghbWV0YURhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWlu
KTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9pZCB3cml0ZVNvdXJjZShXVEY6OlN0
cmluZyYmIHNvdXJjZUpTT04pIGZpbmFsCkBAIC0zMTMsMTQgKzMxMiwxMyBAQCBzdGF0aWMgRXhw
ZWN0ZWQ8TWFwcGVkRGF0YSwgc3RkOjplcnJvcl9jb2RlPiBjb21waWxlZFRvRmlsZShXVEY6OlN0
cmluZyYmIGpzb24sCiAgICAgICAgICAgICB3cml0ZVRvRmlsZShXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6RGF0YShieXRlY29kZS5kYXRhKCksIGJ5dGVjb2RlLnNpemUoKSkpOwogICAgICAgICB9CiAK
LSAgICAgICAgdm9pZCB3cml0ZUFjdGlvbnMoVmVjdG9yPFNlcmlhbGl6ZWRBY3Rpb25CeXRlPiYm
IGFjdGlvbnMsIGJvb2wgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKSBmaW5hbAorICAgICAg
ICB2b2lkIHdyaXRlQWN0aW9ucyhWZWN0b3I8U2VyaWFsaXplZEFjdGlvbkJ5dGU+JiYgYWN0aW9u
cykgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKCFtX2ZpbHRlcnNXaXRob3V0
Q29uZGl0aW9uc0J5dGVjb2RlV3JpdHRlbik7CiAgICAgICAgICAgICBBU1NFUlQoIW1fZmlsdGVy
c1dpdGhDb25kaXRpb25CeXRlY29kZVdyaXR0ZW4pOwogICAgICAgICAgICAgQVNTRVJUKCFtX2Nv
bmRpdGlvbkZpbHRlcnNCeXRlY29kZVdyaXR0ZW4pOwogICAgICAgICAgICAgQVNTRVJUKCFtX2Fj
dGlvbnNXcml0dGVuKTsKICAgICAgICAgICAgIG1fYWN0aW9uc1dyaXR0ZW4gKz0gYWN0aW9ucy5z
aXplKCk7Ci0gICAgICAgICAgICBtX2NvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiA9IGNvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKICAgICAgICAgICAgIHdyaXRlVG9GaWxlKFdlYktpdDo6
TmV0d29ya0NhY2hlOjpEYXRhKGFjdGlvbnMuZGF0YSgpLCBhY3Rpb25zLnNpemUoKSkpOwogICAg
ICAgICB9CiAgICAgICAgIApAQCAtMzMxLDcgKzMyOSw2IEBAIHN0YXRpYyBFeHBlY3RlZDxNYXBw
ZWREYXRhLCBzdGQ6OmVycm9yX2NvZGU+IGNvbXBpbGVkVG9GaWxlKFdURjo6U3RyaW5nJiYganNv
biwKICAgICAgICAgICAgIG1fbWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNv
ZGVTaXplID0gbV9maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVdyaXR0ZW47CiAgICAg
ICAgICAgICBtX21ldGFEYXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IG1f
ZmlsdGVyc1dpdGhDb25kaXRpb25CeXRlY29kZVdyaXR0ZW47CiAgICAgICAgICAgICBtX21ldGFE
YXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZSA9IG1fY29uZGl0aW9uRmlsdGVyc0J5
dGVjb2RlV3JpdHRlbjsKLSAgICAgICAgICAgIG1fbWV0YURhdGEuY29uZGl0aW9uc0FwcGx5T25s
eVRvRG9tYWluID0gbV9jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW47CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhIGhlYWRlciA9IGVuY29kZUNv
bnRlbnRSdWxlTGlzdE1ldGFEYXRhKG1fbWV0YURhdGEpOwogICAgICAgICAgICAgaWYgKCFtX2Zp
bGVFcnJvciAmJiBzZWVrRmlsZShtX2ZpbGVIYW5kbGUsIDBsbCwgRmlsZVNlZWtPcmlnaW46OkJl
Z2lubmluZykgPT0gLTEpIHsKQEAgLTM2Myw3ICszNjAsNiBAQCBzdGF0aWMgRXhwZWN0ZWQ8TWFw
cGVkRGF0YSwgc3RkOjplcnJvcl9jb2RlPiBjb21waWxlZFRvRmlsZShXVEY6OlN0cmluZyYmIGpz
b24sCiAgICAgICAgIHNpemVfdCBtX2NvbmRpdGlvbkZpbHRlcnNCeXRlY29kZVdyaXR0ZW4geyAw
IH07CiAgICAgICAgIHNpemVfdCBtX2FjdGlvbnNXcml0dGVuIHsgMCB9OwogICAgICAgICBzaXpl
X3QgbV9zb3VyY2VXcml0dGVuIHsgMCB9OwotICAgICAgICBib29sIG1fY29uZGl0aW9uc0FwcGx5
T25seVRvRG9tYWluIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBtX2ZpbGVFcnJvciB7IGZhbHNl
IH07CiAgICAgfTsKIApAQCAtNDI5LDcgKzQyNSw2IEBAIHN0YXRpYyBSZWY8QVBJOjpDb250ZW50
UnVsZUxpc3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwK
ICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSA9IFdlYktpdDo6V2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3REYXRhKAogICAgICAgICBXVEY6OlN0cmluZyhpZGVudGlmaWVyKSwK
ICAgICAgICAgc2hhcmVkTWVtb3J5LnJlbGVhc2VOb25OdWxsKCksCi0gICAgICAgIGRhdGEubWV0
YURhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluLAogICAgICAgICBoZWFkZXJBbmRTb3Vy
Y2VTaXplLAogICAgICAgICBkYXRhLm1ldGFEYXRhLmFjdGlvbnNTaXplLAogICAgICAgICBoZWFk
ZXJBbmRTb3VyY2VTaXplCkBAIC00NjQsNiArNDU5LDcgQEAgc3RhdGljIFdURjo6U3RyaW5nIGdl
dENvbnRlbnRSdWxlTGlzdFNvdXJjZUZyb21NYXBwZWRGaWxlKGNvbnN0IE1hcHBlZERhdGEmIG1h
cHAKICAgICBjYXNlIDEwOgogICAgIGNhc2UgMTE6CiAgICAgY2FzZSAxMjoKKyAgICBjYXNlIDEz
OgogICAgICAgICBpZiAoIW1hcHBlZERhdGEubWV0YURhdGEuc291cmNlU2l6ZSkKICAgICAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgKaW5kZXggN2ZjMDU0NTdlNjRj
ZjU4OWIwZmIwZTdlMDM2ZjY5MGZhMmMxN2JhYy4uMjA4MzRkNzg4ZTQwMzYxNDFjZjkyYmU1NGY0
MzFiY2I4YTYwZWY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAg
IC8vIHRvIHByZXZlbnQgY3Jhc2hpbmcgd2hpbGUgbG9hZGluZyBvbGQgZGF0YS4KICAgICAvLyBB
bHNvIHVwZGF0ZSBnZXRDb250ZW50UnVsZUxpc3RTb3VyY2VGcm9tTWFwcGVkRmlsZSB0byBiZSBh
YmxlIHRvIGZpbmQgdGhlIG9yaWdpbmFsIEpTT04KICAgICAvLyBzb3VyY2UgZnJvbSBvbGQgdmVy
c2lvbnMuCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29udGVudFJ1bGVM
aXN0RmlsZVZlcnNpb24gPSAxMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEN1cnJl
bnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lvbiA9IDEzOwogCiAgICAgc3RhdGljIENvbnRlbnRS
dWxlTGlzdFN0b3JlJiBkZWZhdWx0U3RvcmUoKTsKICAgICBzdGF0aWMgUmVmPENvbnRlbnRSdWxl
TGlzdFN0b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAwMWJj
NGZkZDZjYWE1OTZlYjZiNmZmYThiNzBjOTNlYzEzZTczNGQuLjE5MmU4YzMyNzBjYjhlYjIxM2Yz
ZDI1ZGQ0MDg2ZjlhMTY2NWExYmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMi0wOSAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgaWYtZG9tYWlu
IGFuZCB1bmxlc3MtZG9tYWluIGNvbnZlcnNpb24gdG8gV0tDb250ZW50UnVsZUxpc3QgcGFyc2lu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTI2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6dGVzdFJlcXVlc3RJbXBsKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1RfRik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp0ZXN0UmVxdWVzdCk6IERlbGV0ZWQu
CisKIDIwMjEtMTItMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYWtlIEtWTyB3b3JrIGZvciBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1v
ZGVFbmFibGVkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29udGVudEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0NvbnRlbnRFeHRlbnNpb25zLmNwcAppbmRleCBjODNlODc4MjAzNjEzMDJkZWZhYTVmNGUxM2Iz
ZWU5MGY3MzBmODI0Li43ZjI4MTAwOTdmNmI5OWNkYjJmM2IyNWQ4YzVmMjY5ODNjNjQwZmRjIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50
RXh0ZW5zaW9ucy5jcHAKQEAgLTY3LDcgKzY3LDYgQEAgc3RydWN0IENvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEgewogICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+
IGZpbHRlcnNXaXRoQ29uZGl0aW9uczsKICAgICBWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkRG
QUJ5dGVjb2RlPiB0b3BVUkxGaWx0ZXJzOwogICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6
REZBQnl0ZWNvZGU+IGZyYW1lVVJMRmlsdGVyczsKLSAgICBib29sIGNvbmRpdGlvbnNBcHBseU9u
bHlUb0RvbWFpbiB7IGZhbHNlIH07CiB9OwogCiBjbGFzcyBJbk1lbW9yeUNvbnRlbnRFeHRlbnNp
b25Db21waWxhdGlvbkNsaWVudCBmaW5hbCA6IHB1YmxpYyBDb250ZW50RXh0ZW5zaW9uczo6Q29u
dGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50IHsKQEAgLTg0LDcgKzgzLDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICB2b2lkIHdyaXRlU291cmNlKFN0cmluZyYmKSBmaW5hbCB7IH0KIAot
ICAgIHZvaWQgd3JpdGVBY3Rpb25zKFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6U2VyaWFsaXpl
ZEFjdGlvbkJ5dGU+JiYgYWN0aW9ucywgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4p
IGZpbmFsCisgICAgdm9pZCB3cml0ZUFjdGlvbnMoVmVjdG9yPENvbnRlbnRFeHRlbnNpb25zOjpT
ZXJpYWxpemVkQWN0aW9uQnl0ZT4mJiBhY3Rpb25zKSBmaW5hbAogICAgIHsKICAgICAgICAgRVhQ
RUNUX0ZBTFNFKGZpbmFsaXplZCk7CiAgICAgICAgIEVYUEVDVF9FUShtX2RhdGEuYWN0aW9ucy5z
aXplKCksIDB1bGwpOwpAQCAtOTMsNyArOTIsNiBAQCBwcml2YXRlOgogICAgICAgICBFWFBFQ1Rf
RVEobV9kYXRhLnRvcFVSTEZpbHRlcnMuc2l6ZSgpLCAwdWxsKTsKICAgICAgICAgRVhQRUNUX0VR
KG1fZGF0YS5hY3Rpb25zLnNpemUoKSwgMHVsbCk7CiAgICAgICAgIG1fZGF0YS5hY3Rpb25zLmFw
cGVuZFZlY3RvcihhY3Rpb25zKTsKLSAgICAgICAgbV9kYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlU
b0RvbWFpbiA9IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKICAgICB9CiAgICAgCiAgICAg
dm9pZCB3cml0ZUZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlKFZlY3RvcjxDb250ZW50
RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+JiYgYnl0ZWNvZGUpIGZpbmFsCkBAIC0xNDksNyArMTQ3
LDYgQEAgcHJpdmF0ZToKICAgICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRoQ29uZGl0
aW9uc0J5dGVjb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyBtX2RhdGEuZmlsdGVyc1dpdGhD
b25kaXRpb25zLmRhdGEoKSwgbV9kYXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9ucy5zaXplKCkgfTsg
fQogICAgIFNwYW48Y29uc3QgdWludDhfdD4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4geyBtX2RhdGEudG9wVVJMRmlsdGVycy5kYXRhKCksIG1fZGF0YS50b3BV
UkxGaWx0ZXJzLnNpemUoKSB9OyB9CiAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBmcmFtZVVSTEZp
bHRlcnNCeXRlY29kZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgbV9kYXRhLmZyYW1lVVJMRmls
dGVycy5kYXRhKCksIG1fZGF0YS5mcmFtZVVSTEZpbHRlcnMuc2l6ZSgpIH07IH0KLSAgICBib29s
IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGF0
YS5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW47IH0KIAogICAgIEluTWVtb3J5Q29tcGlsZWRD
b250ZW50RXh0ZW5zaW9uKENvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEmJiBkYXRhKQogICAg
ICAgICA6IG1fZGF0YShXVEZNb3ZlKGRhdGEpKQpAQCAtMTcxLDEzICsxNjgsMTcgQEAgc3RhdGlj
IHN0ZDo6cGFpcjxWZWN0b3I8V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvbj4sIFZl
Y3RvcjxTdHJpbmc+PiBhbGwKICAgICByZXR1cm4geyBXVEZNb3ZlKGFjdGlvbnMpLCBXVEZNb3Zl
KGlkZW50aWZpZXJzQXBwbHlpbmdTdHlsZXNoZWV0cykgfTsKIH0KIAotdm9pZCBzdGF0aWMgdGVz
dFJlcXVlc3QoY29uc3QgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2Vu
ZCYgY29udGVudEV4dGVuc2lvbnNCYWNrZW5kLCBjb25zdCBSZXNvdXJjZUxvYWRJbmZvJiByZXNv
dXJjZUxvYWRJbmZvLCBWZWN0b3I8c2l6ZV90PiBleHBlY3RlZEFjdGlvbnMsIHNpemVfdCBzdHls
ZXNoZWV0cyA9IDEpCisjZGVmaW5lIHRlc3RSZXF1ZXN0KC4uLikgdGVzdFJlcXVlc3RJbXBsKF9f
TElORV9fLCBfX1ZBX0FSR1NfXykKKwordm9pZCBzdGF0aWMgdGVzdFJlcXVlc3RJbXBsKGludCBs
aW5lLCBjb25zdCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kJiBj
b250ZW50RXh0ZW5zaW9uc0JhY2tlbmQsIGNvbnN0IFJlc291cmNlTG9hZEluZm8mIHJlc291cmNl
TG9hZEluZm8sIFZlY3RvcjxzaXplX3Q+IGV4cGVjdGVkQWN0aW9ucywgc2l6ZV90IHN0eWxlc2hl
ZXRzID0gMSkKIHsKICAgICBhdXRvIGFjdGlvbnMgPSBhbGxBY3Rpb25zRm9yUmVzb3VyY2VMb2Fk
KGNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCwgcmVzb3VyY2VMb2FkSW5mbyk7CiAgICAgdW5zaWdu
ZWQgZXhwZWN0ZWRTaXplID0gYWN0aW9ucy5maXJzdC5zaXplKCk7CiAgICAgRVhQRUNUX0VRKGV4
cGVjdGVkQWN0aW9ucy5zaXplKCksIGV4cGVjdGVkU2l6ZSk7Ci0gICAgaWYgKGV4cGVjdGVkQWN0
aW9ucy5zaXplKCkgIT0gZXhwZWN0ZWRTaXplKQorICAgIGlmIChleHBlY3RlZEFjdGlvbnMuc2l6
ZSgpICE9IGV4cGVjdGVkU2l6ZSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlRlc3QgZmFpbHVy
ZSBhdCBsaW5lICVkIiwgbGluZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZXhwZWN0ZWRBY3Rpb25zLnNpemUoKTsgKytpKQogICAgICAg
ICBFWFBFQ1RfRVEoZXhwZWN0ZWRBY3Rpb25zW2ldLCBhY3Rpb25zLmZpcnN0W2ldLmRhdGEoKS5p
bmRleCgpKTsKQEAgLTcxNCw3ICs3MTUsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3Qs
IERvbWFpblRyaWdnZXJzKQogICAgIGF1dG8gZG9tYWluUmVnZXhCYWNrZW5kID0gbWFrZUJhY2tl
bmQoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ0ZXN0XFxcXC5odG1sXCIsIFwiaWYtZG9tYWluXCI6W1wid2U/YmtpdC5vcmdc
Il19fV0iKTsKICAgICB0ZXN0UmVxdWVzdChkb21haW5SZWdleEJhY2tlbmQsIG1haW5Eb2N1bWVu
dFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL3Rlc3QuaHRtbCIpLCB7IH0pOwogICAgIHRlc3RS
ZXF1ZXN0KGRvbWFpblJlZ2V4QmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3di
a2l0Lm9yZy90ZXN0Lmh0bWwiKSwgeyB9KTsKLSAgICAKKwogICAgIGF1dG8gbXVsdGlwbGVJZkRv
bWFpbnNCYWNrZW5kID0gbWFrZUJhY2tlbmQoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9j
a1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ0ZXN0XFxcXC5odG1sXCIsIFwiaWYt
ZG9tYWluXCI6W1wid2Via2l0Lm9yZ1wiLCBcInczYy5vcmdcIl19fV0iKTsKICAgICB0ZXN0UmVx
dWVzdChtdWx0aXBsZUlmRG9tYWluc0JhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6
Ly93ZWJraXQub3JnL3Rlc3QuaHRtIiksIHsgfSk7CiAgICAgdGVzdFJlcXVlc3QobXVsdGlwbGVJ
ZkRvbWFpbnNCYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy90
ZXN0Lmh0bWwiKSwgeyB2YXJpYW50SW5kZXg8Q29udGVudEV4dGVuc2lvbnM6OkJsb2NrTG9hZEFj
dGlvbj4gfSk7CkBAIC05NzIsNyArOTczLDYgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0
LCBTdHJpbmdDb21iaW5pbmcpCiAgICAgQVNTRVJUX0VRKGRhdGEuZmlsdGVyc1dpdGhvdXRDb25k
aXRpb25zLnNpemUoKSwgMjg4dSk7CiAgICAgQVNTRVJUX0VRKGRhdGEuZmlsdGVyc1dpdGhDb25k
aXRpb25zLnNpemUoKSwgNXUpOwogICAgIEFTU0VSVF9FUShkYXRhLnRvcFVSTEZpbHRlcnMuc2l6
ZSgpLCA1dSk7Ci0gICAgQVNTRVJUX0ZBTFNFKGRhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9t
YWluKTsKIAogICAgIGF1dG8gZXh0ZW5zaW9uV2l0aEZsYWdzID0gSW5NZW1vcnlDb21waWxlZENv
bnRlbnRFeHRlbnNpb246OmNyZWF0ZSgiWyIKICAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVc
IjpcIm5vdGlmeVwiLFwibm90aWZpY2F0aW9uXCI6XCJBQUFcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiQVwifX0sIgpAQCAtMTU0NCw4ICsxNTQ0LDggQEAgVEVTVF9GKENvbnRlbnRF
eHRlbnNpb25UZXN0LCBJbnZhbGlkSlNPTikKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ3ZWJraXQub3JnXCIsXCJpZi1kb21haW5cIjpbXCJhXCJdLFwiaWYtdG9wLXVybFwiOltcImFc
Il19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBsZUNvbmRpdGlvbnMpOwog
ICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLXRvcC11cmxc
IjpbXSxcInVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OTXVsdGlwbGVDb25kaXRpb25zKTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ3ZWJraXQub3JnXCIsXCJpZi10b3AtdXJsXCI6W1wiYVwiXSxcImlmLWRvbWFpblwiOltcImFc
Il19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBsZUNvbmRpdGlvbnMpOwot
ICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLXRvcC11cmxc
IjpbXCJhXCJdfX0sIHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltcImFcIl19fV0i
LCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Ub3BVUkxBbmREb21haW5Db25kaXRpb25zKTsK
LSAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wi
fSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJpZi10b3AtdXJs
XCI6W1wiYVwiXX19LCB7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJc
Ijp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJ1bmxlc3MtZG9tYWluXCI6W1wiYVwi
XX19XSIsIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlRvcFVSTEFuZERvbWFpbkNvbmRpdGlv
bnMpOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJs
b2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLXRv
cC11cmxcIjpbXCJhXCJdfX0sIHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJp
Z2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLWRvbWFpblwiOltcImFc
Il19fV0iLCB7IH0pOworICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5
cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdc
IixcImlmLXRvcC11cmxcIjpbXCJhXCJdfX0sIHtcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2Nr
XCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcInVubGVzcy1k
b21haW5cIjpbXCJhXCJdfX1dIiwgeyB9KTsKICAgICBjaGVja0NvbXBpbGVyRXJyb3IoIlt7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJ0ZXN0XFxcXC5odG1sXCIsIFwidW5sZXNzLXRvcC11cmxcIjpbXCJbXCJdfX1dIiwgQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4KTsKICAgICBjaGVja0NvbXBpbGVyRXJy
b3IoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsIFwidW5leHBlY3RlZC1pZGVudGlmaWVyLXNob3VsZC1i
ZS1pZ25vcmVkXCI6NX19XSIsIHsgfSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446668</attachid>
            <date>2021-12-09 23:14:45 -0800</date>
            <delta_ts>2021-12-10 12:18:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234126-20211209231444.patch</filename>
            <type>text/plain</type>
            <size>38027</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVkZmQ0NGEwYjhmOTZj
MzZmNTI1YTc3NDIyM2Q5ODg3MDY4OTkwYi4uNTE0YjViZmNkMGVmZDVkZDBiMjI1MzE5ZmY3Njc4
MTVhMjk4ZjdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEyLTA5ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBp
Zi1kb21haW4gYW5kIHVubGVzcy1kb21haW4gY29udmVyc2lvbiB0byBXS0NvbnRlbnRSdWxlTGlz
dCBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzQxMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHNpbXBsaWZpZXMgYSBwYXJ0IG9mIHRoZSBjb21waWxlciB0aGF0IGlzIGFib3V0IHRv
IGdldCBtb3JlIGNvbXBsaWNhdGVkLgorICAgICAgICBpZi1kb21haW4gYW5kIHVubGVzcy1kb21h
aW4gd2VyZSB0aGUgcHJlZGVjZXNzb3JzIG9mIGlmLXRvcC11cmwgYW5kIHVubGVzcy10b3AtdXJs
LAorICAgICAgICB3aGljaCBhcmUgc3RyaWN0bHkgbW9yZSBwb3dlcmZ1bCBiZWNhdXNlIHRoZXkg
cnVuIHJlZ2V4ZXMgb24gdGhlIHdob2xlIHRvcCBVUkwuCisgICAgICAgIFRoaXMganVzdCB0cmFu
c2xhdGVzICotZG9tYWluIGludG8gYSAqLXRvcC11cmwgcmVnZXguICBUaGlzIGFsc28gbWFrZXMg
aXQgc28gdGhlcmUKKyAgICAgICAgaXMgbm8gcmVhc29uIG5vdCB0byBoYXZlICotZG9tYWluIGFu
ZCAqLXRvcC11cmwgY29uZGl0aW9ucyBpbiB0aGUgc2FtZSBydWxlIGxpc3QuCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L0NvbWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6Q29tYmluZWRVUkxGaWx0ZXJzOjphZGREb21haW4pOiBEZWxldGVkLgorICAgICAgICAq
IGNvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5oOgorICAgICAgICAqIGNvbnRl
bnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oOgorICAgICAgICAqIGNvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb246OnBvcHVsYXRlQ29uZGl0aW9uQ2FjaGVJ
Zk5lZWRlZCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNv
bXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb21waWxl
UnVsZUxpc3QpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25D
b21waWxlci5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25F
cnJvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29udGVudEV4
dGVuc2lvbkVycm9yQ2F0ZWdvcnkpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25FcnJvci5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25QYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
OmdldERvbWFpbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Omxv
YWRUcmlnZ2VyKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
UnVsZS5oOgorCiAyMDIxLTEyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEFsd2F5cyBzZXQgYXVkaW8gc2Vzc2lvbiBwcmVmZXJyZWQg
aW5wdXQgYWZ0ZXIgY2hhbmdpbmcgdGhlIGNhdGVnb3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY4N2ZkNzk4YzIx
OTU1ZWQxNTg5NDVkYTk3YzhiZjY5ZTNjYTBiM2QuLjJkOWE0YjU0OTQ2ZjUxMmVlM2EwYjMyOTMz
YzQwMGUxMGZiOTE4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMTItMDkgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3Zl
IGlmLWRvbWFpbiBhbmQgdW5sZXNzLWRvbWFpbiBjb252ZXJzaW9uIHRvIFdLQ29udGVudFJ1bGVM
aXN0IHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDEyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdERhdGEuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhOjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwOgorICAgICAgICAoQVBJOjplbmNv
ZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YSk6CisgICAgICAgIChBUEk6OmRlY29kZUNvbnRlbnRS
dWxlTGlzdE1ldGFEYXRhKToKKyAgICAgICAgKEFQSTo6Y29tcGlsZWRUb0ZpbGUpOgorICAgICAg
ICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAgICAgICAoQVBJOjpnZXRDb250ZW50UnVsZUxp
c3RTb3VyY2VGcm9tTWFwcGVkRmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250
ZW50UnVsZUxpc3RTdG9yZS5oOgorCiAyMDIxLTEyLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBLVk8gd29yayBmb3IgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMuX2NhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKaW5kZXggNGRhOTg4YzUy
MWQxMjliNzViNDk4MDVjZWViNWZiMDRlZmE2ZTZhOC4uMzM3ZDY0OGY3OGNlNDQ3M2UyZjRmNTk4
NGM4Njk5Y2QzMzk1YzUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwCkBAIC0xNDIsNDggKzE0Miw2IEBAIGJv
b2wgQ29tYmluZWRVUkxGaWx0ZXJzOjppc0VtcHR5KCkgY29uc3QKICAgICByZXR1cm4gbV9wcmVm
aXhUcmVlUm9vdC0+ZWRnZXMuaXNFbXB0eSgpOwogfQogCi12b2lkIENvbWJpbmVkVVJMRmlsdGVy
czo6YWRkRG9tYWluKHVpbnQ2NF90IGFjdGlvbklkLCBjb25zdCBTdHJpbmcmIGRvbWFpbikKLXsK
LSAgICB1bnNpZ25lZCBkb21haW5MZW5ndGggPSBkb21haW4ubGVuZ3RoKCk7Ci0gICAgaWYgKGRv
bWFpbkxlbmd0aCAmJiBkb21haW5bMF0gPT0gJyonKSB7Ci0gICAgICAgIC8vIElmIGRvbWFpbiBz
dGFydHMgd2l0aCBhICcqJyB0aGVuIGl0IG1lYW5zIG1hdGNoIGRvbWFpbiBhbmQgaXRzIHN1YmRv
bWFpbnMsIGxpa2UgKF58Lilkb21haW4kCi0gICAgICAgIC8vIFRoaXMgd2F5IGEgZG9tYWluIG9m
ICIqd2Via2l0Lm9yZyIgd2lsbCBtYXRjaCAiYnVncy53ZWJraXQub3JnIiBhbmQgIndlYmtpdC5v
cmciLgotICAgICAgICBWZWN0b3I8VGVybT4gcHJlcGVuZERvdDsKLSAgICAgICAgVmVjdG9yPFRl
cm0+IHByZXBlbmRCZWdpbm5pbmdPZkxpbmU7Ci0gICAgICAgIHByZXBlbmREb3QucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShkb21haW5MZW5ndGggKyAyKTsKLSAgICAgICAgcHJlcGVuZEJlZ2lubmlu
Z09mTGluZS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGRvbWFpbkxlbmd0aCk7IC8vIFRoaXMgaXMg
anVzdCBubyAuKiBhdCB0aGUgYmVnaW5uaW5nLgotICAgICAgICAKLSAgICAgICAgVGVybSBjYW5v
bmljYWxEb3RTdGFyKFRlcm06OlVuaXZlcnNhbFRyYW5zaXRpb24pOwotICAgICAgICBjYW5vbmlj
YWxEb3RTdGFyLnF1YW50aWZ5KEF0b21RdWFudGlmaWVyOjpaZXJvT3JNb3JlKTsKLSAgICAgICAg
cHJlcGVuZERvdC51bmNoZWNrZWRBcHBlbmQoY2Fub25pY2FsRG90U3Rhcik7Ci0gICAgICAgIHBy
ZXBlbmREb3QudW5jaGVja2VkQXBwZW5kKFRlcm0oJy4nLCB0cnVlKSk7Ci0gICAgICAgIAotICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgZG9tYWluTGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICAgIEFTU0VSVChpc0FTQ0lJKGRvbWFpbltpXSkpOwotICAgICAgICAgICAgQVNTRVJUKCFp
c0FTQ0lJVXBwZXIoZG9tYWluW2ldKSk7Ci0gICAgICAgICAgICBwcmVwZW5kRG90LnVuY2hlY2tl
ZEFwcGVuZChUZXJtKGRvbWFpbltpXSwgdHJ1ZSkpOwotICAgICAgICAgICAgcHJlcGVuZEJlZ2lu
bmluZ09mTGluZS51bmNoZWNrZWRBcHBlbmQoVGVybShkb21haW5baV0sIHRydWUpKTsKLSAgICAg
ICAgfQotICAgICAgICBwcmVwZW5kRG90LnVuY2hlY2tlZEFwcGVuZChUZXJtOjpFbmRPZkxpbmVB
c3NlcnRpb25UZXJtKTsKLSAgICAgICAgcHJlcGVuZEJlZ2lubmluZ09mTGluZS51bmNoZWNrZWRB
cHBlbmQoVGVybTo6RW5kT2ZMaW5lQXNzZXJ0aW9uVGVybSk7Ci0gICAgICAgIAotICAgICAgICBh
ZGRQYXR0ZXJuKGFjdGlvbklkLCBwcmVwZW5kRG90KTsKLSAgICAgICAgYWRkUGF0dGVybihhY3Rp
b25JZCwgcHJlcGVuZEJlZ2lubmluZ09mTGluZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8g
VGhpcyBpcyBsaWtlIGFkZGluZyBeZG9tYWluJCwgYnV0IGludGVycHJldGluZyBkb21haW4gYXMg
YSBzZXJpZXMgb2YgY2hhcmFjdGVycywgbm90IGEgcmVndWxhciBleHByZXNzaW9uLgotICAgICAg
ICAvLyAid2Via2l0Lm9yZyIgd2lsbCBtYXRjaCAid2Via2l0Lm9yZyIgYnV0IG5vdCAiYnVncy53
ZWJraXQub3JnIi4KLSAgICAgICAgVmVjdG9yPFRlcm0+IHByZXBlbmRCZWdpbm5pbmdPZkxpbmU7
Ci0gICAgICAgIHByZXBlbmRCZWdpbm5pbmdPZkxpbmUucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShk
b21haW5MZW5ndGggKyAxKTsgLy8gVGhpcyBpcyBqdXN0IG5vIC4qIGF0IHRoZSBiZWdpbm5pbmcu
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21haW5MZW5ndGg7IGkrKykgewot
ICAgICAgICAgICAgQVNTRVJUKGlzQVNDSUkoZG9tYWluW2ldKSk7Ci0gICAgICAgICAgICBBU1NF
UlQoIWlzQVNDSUlVcHBlcihkb21haW5baV0pKTsKLSAgICAgICAgICAgIHByZXBlbmRCZWdpbm5p
bmdPZkxpbmUudW5jaGVja2VkQXBwZW5kKFRlcm0oZG9tYWluW2ldLCB0cnVlKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgcHJlcGVuZEJlZ2lubmluZ09mTGluZS51bmNoZWNrZWRBcHBlbmQoVGVybTo6
RW5kT2ZMaW5lQXNzZXJ0aW9uVGVybSk7Ci0gICAgICAgIGFkZFBhdHRlcm4oYWN0aW9uSWQsIHBy
ZXBlbmRCZWdpbm5pbmdPZkxpbmUpOwotICAgIH0KLX0KLQogdm9pZCBDb21iaW5lZFVSTEZpbHRl
cnM6OmFkZFBhdHRlcm4odWludDY0X3QgYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxUZXJtPiYgcGF0
dGVybikKIHsKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFwYXR0ZXJuLmlzRW1wdHkoKSwgIlRo
ZSBwYXJzZXIgc2hvdWxkIGhhdmUgZXhjbHVkZWQgZW1wdHkgcGF0dGVybnMgYmVmb3JlIHJlYWNo
aW5nIENvbWJpbmVkVVJMRmlsdGVycy4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5oIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmgKaW5kZXggNWNhNTIwNGNiZjM3MGU1
NDFhYjRmNDk4Yjc0ODU1MWVmMjJmN2IyMS4uM2IyNzRmMDIwNjRiM2JkNjQ0MDVhYmJhYjkyYjlm
N2M0NzYwOWY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29tYmluZWRVUkxGaWx0ZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvQ29tYmluZWRVUkxGaWx0ZXJzLmgKQEAgLTQ1LDggKzQ1LDYgQEAgcHVibGljOgogICAgIH5D
b21iaW5lZFVSTEZpbHRlcnMoKTsKIAogICAgIHZvaWQgYWRkUGF0dGVybih1aW50NjRfdCBhY3Rp
b25JZCwgY29uc3QgVmVjdG9yPFRlcm0+JiBwYXR0ZXJuKTsKLSAgICB2b2lkIGFkZERvbWFpbih1
aW50NjRfdCBhY3Rpb25JZCwgY29uc3QgU3RyaW5nJiBkb21haW4pOwotCiAgICAgYm9vbCBwcm9j
ZXNzTkZBcyhzaXplX3QgbWF4TkZBU2l6ZSwgRnVuY3Rpb248Ym9vbChORkEmJik+JiYpOwogICAg
IGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db21waWxlZENvbnRlbnRFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCmluZGV4IDQ0MjQ2
ZjZhZDhiMzY1Y2UxZjViNWQzMmIyNjRkMWJhM2Y4NGNhYTYuLmU2NjExNmFmOWQxODNhZjY0ODdi
MWQ0YWVjOTRiMjRlZGRjZTNiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oCkBAIC00Myw3ICs0
Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNwYW48Y29uc3QgdWludDhfdD4gdG9wVVJMRmls
dGVyc0J5dGVjb2RlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3Bhbjxjb25zdCB1aW50OF90
PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFNwYW48
Y29uc3QgdWludDhfdD4gc2VyaWFsaXplZEFjdGlvbnMoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVh
bCBib29sIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbigpIGNvbnN0ID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCmluZGV4IGFj
ZDRmNjQxYTJmOTkyNTBhM2M3OGQ1ZDdlNTU4ZTcwNGI3YjFlMmYuLmU4N2M0MjFiNjc3YzNhNDhh
NDBhOTllNjRiMzhkZWIxZGIzNWM4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAg
dm9pZCBDb250ZW50RXh0ZW5zaW9uOjpwb3B1bGF0ZUNvbmRpdGlvbkNhY2hlSWZOZWVkZWQoY29u
c3QgVVJMJiB0b3BVUkwpCiAgICAgaWYgKG1fY2FjaGVkVG9wVVJMICE9IHRvcFVSTCkgewogICAg
ICAgICBERkFCeXRlY29kZUludGVycHJldGVyIGludGVycHJldGVyKG1fY29tcGlsZWRFeHRlbnNp
b24tPnRvcFVSTEZpbHRlcnNCeXRlY29kZSgpKTsKICAgICAgICAgY29uc3RleHByIFJlc291cmNl
RmxhZ3MgYWxsTG9hZFR5cGVzQW5kUmVzb3VyY2VUeXBlcyA9IExvYWRUeXBlTWFzayB8IFJlc291
cmNlVHlwZU1hc2sgfCBMb2FkQ29udGV4dE1hc2s7Ci0gICAgICAgIFN0cmluZyBzdHJpbmcgPSBt
X2NvbXBpbGVkRXh0ZW5zaW9uLT5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4oKSA/IHRvcFVS
TC5ob3N0KCkudG9TdHJpbmcoKSA6IHRvcFVSTC5zdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0
cmluZyA9IHRvcFVSTC5zdHJpbmcoKTsKICAgICAgICAgYXV0byB0b3BVUkxBY3Rpb25zID0gaW50
ZXJwcmV0ZXIuaW50ZXJwcmV0KHN0cmluZy51dGY4KCksIGFsbExvYWRUeXBlc0FuZFJlc291cmNl
VHlwZXMpOwogICAgICAgICAKICAgICAgICAgbV9jYWNoZWRUb3BVUkxBY3Rpb25zLmNsZWFyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAppbmRleCA0OTM3MjIxYTc1MDdiN2Y4MTZkNDNiOTk0
MjAzN2I4OWQ2ZDNiMTJhLi44OTIwZTRiZDg2OGFkMDEwZGQ5YjJiZjYwYjY5MTJiNzdkYmQ0NjVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKQEAgLTI3OSwyNSArMjc5LDYgQEAgc3RkOjpl
cnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGll
bnQmIGNsaWVudCwgU3RyaW4KICAgICB9KTsKICNlbmRpZgogCi0gICAgYm9vbCBkb21haW5Db25k
aXRpb25TZWVuID0gZmFsc2U7Ci0gICAgYm9vbCB0b3BVUkxDb25kaXRpb25TZWVuID0gZmFsc2U7
Ci0gICAgZm9yIChjb25zdCBhdXRvJiBydWxlIDogcGFyc2VkUnVsZUxpc3QpIHsKLSAgICAgICAg
c3dpdGNoIChydWxlLnRyaWdnZXIoKS5jb25kaXRpb25UeXBlKSB7Ci0gICAgICAgIGNhc2UgVHJp
Z2dlcjo6Q29uZGl0aW9uVHlwZTo6Tm9uZToKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmRG9tYWluOgotICAgICAgICBjYXNlIFRyaWdn
ZXI6OkNvbmRpdGlvblR5cGU6OlVubGVzc0RvbWFpbjoKLSAgICAgICAgICAgIGRvbWFpbkNvbmRp
dGlvblNlZW4gPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHJpZ2dl
cjo6Q29uZGl0aW9uVHlwZTo6SWZUb3BVUkw6Ci0gICAgICAgIGNhc2UgVHJpZ2dlcjo6Q29uZGl0
aW9uVHlwZTo6VW5sZXNzVG9wVVJMOgotICAgICAgICAgICAgdG9wVVJMQ29uZGl0aW9uU2VlbiA9
IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAodG9w
VVJMQ29uZGl0aW9uU2VlbiAmJiBkb21haW5Db25kaXRpb25TZWVuKQotICAgICAgICByZXR1cm4g
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OVG9wVVJMQW5kRG9tYWluQ29uZGl0aW9uczsKLQog
I2lmIENPTlRFTlRfRVhURU5TSU9OU19QRVJGT1JNQU5DRV9SRVBPUlRJTkcKICAgICBNb25vdG9u
aWNUaW1lIHBhdHRlcm5QYXJ0aXRpb25pbmdTdGFydCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwog
I2VuZGlmCkBAIC0zMDcsNyArMjg4LDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlz
dChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICBW
ZWN0b3I8U2VyaWFsaXplZEFjdGlvbkJ5dGU+IGFjdGlvbnM7CiAgICAgVmVjdG9yPHVuc2lnbmVk
PiBhY3Rpb25Mb2NhdGlvbnMgPSBzZXJpYWxpemVBY3Rpb25zKHBhcnNlZFJ1bGVMaXN0LCBhY3Rp
b25zKTsKICAgICBMT0dfTEFSR0VfU1RSVUNUVVJFUyhhY3Rpb25zLCBhY3Rpb25zLmNhcGFjaXR5
KCkgKiBzaXplb2YoU2VyaWFsaXplZEFjdGlvbkJ5dGUpKTsKLSAgICBjbGllbnQud3JpdGVBY3Rp
b25zKFdURk1vdmUoYWN0aW9ucyksIGRvbWFpbkNvbmRpdGlvblNlZW4pOworICAgIGNsaWVudC53
cml0ZUFjdGlvbnMoV1RGTW92ZShhY3Rpb25zKSk7CiAKICAgICBVbml2ZXJzYWxBY3Rpb25TZXQg
dW5pdmVyc2FsQWN0aW9uc1dpdGhvdXRDb25kaXRpb25zOwogICAgIFVuaXZlcnNhbEFjdGlvblNl
dCB1bml2ZXJzYWxBY3Rpb25zV2l0aENvbmRpdGlvbnM7CkBAIC0zNDQsMTIgKzMyNSwxMCBAQCBz
dGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlv
bkNsaWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgc3dpdGNoICh0cmlnZ2VyLmNvbmRpdGlvblR5cGUpIHsKLSAgICAgICAgICAg
IGNhc2UgVHJpZ2dlcjo6Q29uZGl0aW9uVHlwZTo6SWZEb21haW46CiAgICAgICAgICAgICBjYXNl
IFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmVG9wVVJMOgogICAgICAgICAgICAgICAgIGFjdGlv
bkxvY2F0aW9uQW5kRmxhZ3MgfD0gSWZDb25kaXRpb25GbGFnOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBUcmlnZ2VyOjpDb25kaXRpb25UeXBlOjpOb25lOgotICAg
ICAgICAgICAgY2FzZSBUcmlnZ2VyOjpDb25kaXRpb25UeXBlOjpVbmxlc3NEb21haW46CiAgICAg
ICAgICAgICBjYXNlIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OlVubGVzc1RvcFVSTDoKICAgICAg
ICAgICAgICAgICBBU1NFUlQoIShhY3Rpb25Mb2NhdGlvbkFuZEZsYWdzICYgSWZDb25kaXRpb25G
bGFnKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNjUsMjAgKzM0NCwxNCBAQCBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNs
aWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBm
b3IgKGNvbnN0IFN0cmluZyYgY29uZGl0aW9uIDogdHJpZ2dlci5jb25kaXRpb25zKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGRvbWFpbkNvbmRpdGlvblNlZW4pIHsKLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKCF0b3BVUkxDb25kaXRpb25TZWVuKTsKLSAgICAgICAgICAgICAgICAgICAgdG9w
VVJMRmlsdGVycy5hZGREb21haW4oYWN0aW9uTG9jYXRpb25BbmRGbGFncywgY29uZGl0aW9uKTsK
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlQodG9w
VVJMQ29uZGl0aW9uU2Vlbik7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHRvcFVSTEZp
bHRlclBhcnNlci5hZGRQYXR0ZXJuKGNvbmRpdGlvbiwgdHJpZ2dlci50b3BVUkxDb25kaXRpb25J
c0Nhc2VTZW5zaXRpdmUsIGFjdGlvbkxvY2F0aW9uQW5kRmxhZ3MpOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoc3RhdHVzID09IFVSTEZpbHRlclBhcnNlcjo6TWF0Y2hlc0V2ZXJ5dGhpbmcpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNhbFRvcFVSTEFjdGlvbnMuYWRkKGFjdGlv
bkxvY2F0aW9uQW5kRmxhZ3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gVVJM
RmlsdGVyUGFyc2VyOjpPazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICBpZiAoc3RhdHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0
aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cyku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwotICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgc3RhdHVzID0gdG9wVVJMRmlsdGVyUGFyc2VyLmFkZFBhdHRlcm4oY29u
ZGl0aW9uLCB0cmlnZ2VyLnRvcFVSTENvbmRpdGlvbklzQ2FzZVNlbnNpdGl2ZSwgYWN0aW9uTG9j
YXRpb25BbmRGbGFncyk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBVUkxGaWx0ZXJQ
YXJzZXI6Ok1hdGNoZXNFdmVyeXRoaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNh
bFRvcFVSTEFjdGlvbnMuYWRkKGFjdGlvbkxvY2F0aW9uQW5kRmxhZ3MpOworICAgICAgICAgICAg
ICAgICAgICBzdGF0dXMgPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKKyAg
ICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4i
LCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmco
c3RhdHVzKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5oIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmgKaW5kZXggZWIzMjk2
YTA5Nzk0NzE0MjhjODkwMmRmZDYzN2IwNGMwZWRmMTlhYi4uNWJlZGQzZWMxMzQ0NGEyMTk1MGE5
MzE3MzcyZjgxYTBmY2JjYTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmgKQEAgLTMyLDggKzMy
LDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAot
bmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKK25hbWVz
cGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9ucyB7CiAKIGNsYXNzIENvbnRlbnRFeHRlbnNp
b25Db21waWxhdGlvbkNsaWVudCB7CiBwdWJsaWM6CkBAIC00MSw3ICs0MCw3IEBAIHB1YmxpYzoK
ICAgICAKICAgICAvLyBGdW5jdGlvbnMgc2hvdWxkIGJlIGNhbGxlZCBpbiB0aGlzIG9yZGVyLiBB
bGwgZXhjZXB0IHdyaXRlQWN0aW9ucyBhbmQgZmluYWxpemUgY2FuIGJlIGNhbGxlZCBtdWx0aXBs
ZSB0aW1lcywgdGhvdWdoLgogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVNvdXJjZShTdHJpbmcmJikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCB3cml0ZUFjdGlvbnMoVmVjdG9yPFNlcmlhbGl6ZWRBY3Rp
b25CeXRlPiYmLCBib29sIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB3cml0ZUFjdGlvbnMoVmVjdG9yPFNlcmlhbGl6ZWRBY3Rpb25CeXRlPiYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlRmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNv
ZGUoVmVjdG9yPERGQUJ5dGVjb2RlPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdyaXRlRmls
dGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGUoVmVjdG9yPERGQUJ5dGVjb2RlPiYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHdyaXRlVG9wVVJMRmlsdGVyc0J5dGVjb2RlKFZlY3RvcjxERkFCeXRl
Y29kZT4mJikgPSAwOwpAQCAtNTAsNyArNDksNiBAQCBwdWJsaWM6CiAKIFdFQkNPUkVfRVhQT1JU
IHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBpbGF0
aW9uQ2xpZW50JiwgU3RyaW5nJiYgcnVsZUpTT04sIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uUnVs
ZT4mJik7CiAKLX0gLy8gbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9ucwogCiAj
ZW5kaWYgLy8gRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uRXJyb3IuY3BwCmlu
ZGV4IDU4ZmJiOTg0MmExNTZjYmU1NGI5OWY4Mzk0NTBjYWNmMzgwMmU0NDYuLjY0OWJkNzBmNjUx
MDQ1MzhkYzE4OGY0NDhjZTE0ZjZhZTQwODRhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmNwcApAQCAt
ODEsOCArODEsNiBAQCBjb25zdCBzdGQ6OmVycm9yX2NhdGVnb3J5JiBjb250ZW50RXh0ZW5zaW9u
RXJyb3JDYXRlZ29yeSgpCiAgICAgICAgICAgICAgICAgcmV0dXJuICJEb21haW5zIG11c3QgYmUg
bG93ZXIgY2FzZSBBU0NJSS4gVXNlIHB1bnljb2RlIHRvIGVuY29kZSBub24tQVNDSUkgY2hhcmFj
dGVycy4iOwogICAgICAgICAgICAgY2FzZSBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0
aXBsZUNvbmRpdGlvbnM6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJBIHRyaWdnZXIgY2Fubm90
IGhhdmUgbW9yZSB0aGFuIG9uZSBjb25kaXRpb24gKGlmLWRvbWFpbiwgdW5sZXNzLWRvbWFpbiwg
aWYtdG9wLXVybCwgb3IgdW5sZXNzLXRvcC11cmwpIjsKLSAgICAgICAgICAgIGNhc2UgQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OVG9wVVJMQW5kRG9tYWluQ29uZGl0aW9uczoKLSAgICAgICAg
ICAgICAgICByZXR1cm4gIkEgbGlzdCBjYW5ub3QgaGF2ZSBpZi1kb21haW4gYW5kIHVubGVzcy1k
b21haW4gbWl4ZWQgd2l0aCBpZi10b3AtdXJsIGFuZCB1bmxlc3MtdG9wLXVybCI7CiAgICAgICAg
ICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWROb3RpZmljYXRpb246
CiAgICAgICAgICAgICAgICAgcmV0dXJuICJBIG5vdGlmeSBhY3Rpb24gbXVzdCBoYXZlIGEgc3Ry
aW5nIG5vdGlmaWNhdGlvbiI7CiAgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25FcnJv
cjo6RXJyb3JXcml0aW5nU2VyaWFsaXplZE5GQToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgKaW5kZXggYWFmZmI2
Zjg5MzA0ZTYwNGFlZGZiNmFjMzhiYjZmYTI5MDQ0NTVlYi4uYTI0NWQ5M2U1MDI0ZDIzOWU2M2Q0
Y2Q2MmNjYjE4ZTZkMTU5OTczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkVycm9yLmgKQEAgLTQ5LDcgKzQ5LDYgQEAg
ZW51bSBjbGFzcyBDb250ZW50RXh0ZW5zaW9uRXJyb3IgewogICAgIEpTT05JbnZhbGlkQ29uZGl0
aW9uTGlzdCwKICAgICBKU09ORG9tYWluTm90TG93ZXJDYXNlQVNDSUksCiAgICAgSlNPTk11bHRp
cGxlQ29uZGl0aW9ucywKLSAgICBKU09OVG9wVVJMQW5kRG9tYWluQ29uZGl0aW9ucywKICAgICBK
U09OVG9vTWFueVJ1bGVzLAogICAgIAogICAgIEpTT05JbnZhbGlkQWN0aW9uLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
UGFyc2VyLmNwcAppbmRleCBiZDVjZDJmZGM0YzJjZDI3MWZmY2YwMWUzZjRmYjAxNjI3ZGE5OWU5
Li4xNjFiYmQzYzk3MDM5NzAxNzA2ODg3ZTAwZjY2MjNhOGY2M2ZiNWE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
UGFyc2VyLmNwcApAQCAtMzgsOSArMzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKK25hbWVzcGFjZSBXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9ucyB7CiAgICAgCiBzdGF0aWMgYm9vbCBjb250YWluc09ubHlBU0NJSVdpdGhO
b1VwcGVyY2FzZShjb25zdCBTdHJpbmcmIGRvbWFpbikKIHsKQEAgLTY2LDE1ICs2NCw0MiBAQCBz
dGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIHN0ZDo6ZXJyb3JfY29kZT4gZ2V0U3RyaW5n
TGlzdChjb25zdCBKU09OOjpBcnJheQogCiBzdGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4s
IHN0ZDo6ZXJyb3JfY29kZT4gZ2V0RG9tYWluTGlzdChjb25zdCBKU09OOjpBcnJheSYgYXJyYXlP
YmplY3QpCiB7Ci0gICAgYXV0byBzdHJpbmdzID0gZ2V0U3RyaW5nTGlzdChhcnJheU9iamVjdCk7
Ci0gICAgaWYgKCFzdHJpbmdzLmhhc192YWx1ZSgpKQotICAgICAgICByZXR1cm4gc3RyaW5nczsK
LSAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IHN0cmluZ3MudmFsdWUoKSkgeworICAgIGF1dG8gZG9t
YWlucyA9IGdldFN0cmluZ0xpc3QoYXJyYXlPYmplY3QpOworICAgIGlmICghZG9tYWlucykKKyAg
ICAgICAgcmV0dXJuIGRvbWFpbnM7CisgICAgCisgICAgVmVjdG9yPFN0cmluZz4gcmVnZXhlczsK
KyAgICByZWdleGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZG9tYWlucy0+c2l6ZSgpKTsKKyAg
ICBmb3IgKGF1dG8mIGRvbWFpbiA6ICpkb21haW5zKSB7CiAgICAgICAgIC8vIERvbWFpbnMgc2hv
dWxkIGJlIHB1bnljb2RlIGVuY29kZWQgbG93ZXIgY2FzZS4KICAgICAgICAgaWYgKCFjb250YWlu
c09ubHlBU0NJSVdpdGhOb1VwcGVyY2FzZShkb21haW4pKQogICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkRvbWFpbk5vdExvd2VyQ2Fz
ZUFTQ0lJKTsKKworICAgICAgICBib29sIGFsbG93U3ViZG9tYWlucyA9IGZhbHNlOworICAgICAg
ICBpZiAoZG9tYWluLnN0YXJ0c1dpdGgoJyonKSkgeworICAgICAgICAgICAgYWxsb3dTdWJkb21h
aW5zID0gdHJ1ZTsKKyAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5zdWJzdHJpbmcoMSk7Cisg
ICAgICAgIH0KKworICAgICAgICBzdGQ6OmFycmF5PHN0ZDo6cGFpcjxVQ2hhciwgY29uc3QgY2hh
cio+LCA5PiBlc2NhcGVUYWJsZSB7IHsKKyAgICAgICAgICAgIHsgJ1xcJywgIlxcXFwiIH0sCisg
ICAgICAgICAgICB7ICd7JywgIlxceyIgfSwKKyAgICAgICAgICAgIHsgJ30nLCAiXFx9IiB9LAor
ICAgICAgICAgICAgeyAnWycsICJcXFsiIH0sCisgICAgICAgICAgICB7ICdbJywgIlxcWyIgfSwK
KyAgICAgICAgICAgIHsgJy4nLCAiXFwuIiB9LAorICAgICAgICAgICAgeyAnPycsICJcXD8iIH0s
CisgICAgICAgICAgICB7ICcqJywgIlxcKiIgfSwKKyAgICAgICAgICAgIHsgJyQnLCAiXFwkIiB9
CisgICAgICAgIH0gfTsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogZXNjYXBlVGFibGUpCisg
ICAgICAgICAgICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBwYWlyLnNlY29u
ZCk7CisKKyAgICAgICAgY29uc3QgY2hhciogcHJvdG9jb2xSZWdleCA9ICJbYS16XVthLXorLi1d
KjpcXC9cXC8iOworICAgICAgICBjb25zdCBjaGFyKiBhbGxvd1N1YmRvbWFpbnNSZWdleCA9ICIo
LipcXC4pKiI7CisgICAgICAgIHJlZ2V4ZXMudW5jaGVja2VkQXBwZW5kKG1ha2VTdHJpbmcocHJv
dG9jb2xSZWdleCwgYWxsb3dTdWJkb21haW5zID8gYWxsb3dTdWJkb21haW5zUmVnZXggOiAiIiwg
ZG9tYWluLCAiWzovXSIpKTsKICAgICB9Ci0gICAgcmV0dXJuIHN0cmluZ3M7CisgICAgcmV0dXJu
IHJlZ2V4ZXM7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkBAIC0xNTQsMTAgKzE3OSwxMCBA
QCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihj
b25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICByZXR1cm4geyB9OwogICAgIH07CiAK
LSAgICBpZiAoYXV0byBlcnJvciA9IGNoZWNrQ29uZGl0aW9uKCJpZi1kb21haW4iX3MsIGdldERv
bWFpbkxpc3QsIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmRG9tYWluKSkKKyAgICBpZiAoYXV0
byBlcnJvciA9IGNoZWNrQ29uZGl0aW9uKCJpZi1kb21haW4iX3MsIGdldERvbWFpbkxpc3QsIFRy
aWdnZXI6OkNvbmRpdGlvblR5cGU6OklmVG9wVVJMKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKGVycm9yKTsKIAotICAgIGlmIChhdXRvIGVycm9yID0gY2hlY2tDb25kaXRpb24oInVu
bGVzcy1kb21haW4iX3MsIGdldERvbWFpbkxpc3QsIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OlVu
bGVzc0RvbWFpbikpCisgICAgaWYgKGF1dG8gZXJyb3IgPSBjaGVja0NvbmRpdGlvbigidW5sZXNz
LWRvbWFpbiJfcywgZ2V0RG9tYWluTGlzdCwgVHJpZ2dlcjo6Q29uZGl0aW9uVHlwZTo6VW5sZXNz
VG9wVVJMKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKIAogICAgIGlm
IChhdXRvIGVycm9yID0gY2hlY2tDb25kaXRpb24oImlmLXRvcC11cmwiX3MsIGdldFN0cmluZ0xp
c3QsIFRyaWdnZXI6OkNvbmRpdGlvblR5cGU6OklmVG9wVVJMKSkKQEAgLTI5NCw3ICszMTksNiBA
QCBFeHBlY3RlZDxWZWN0b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+LCBzdGQ6OmVycm9yX2NvZGU+
IHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaQogICAgIHJldHVybiBydWxlTGlzdDsKIH0KIAotfSAv
LyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zCiAKICNlbmRpZiAvLyBFTkFC
TEUoQ09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25SdWxlLmgKaW5kZXggZTJlMzk2ZDRmZTFhY2U2
ZDE0ZjMxNDhkMjdiOWU2MjU1N2UwODIyZS4uOTMwZjVmZmU2Y2JkYmQ3NjgzMDJlZDIyMjA1YTZj
MTE3ZTc3NzAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvblJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9Db250ZW50RXh0ZW5zaW9uUnVsZS5oCkBAIC00NywxMCArNDcsOCBAQCBzdHJ1Y3QgVHJp
Z2dlciB7CiAgICAgYm9vbCB0b3BVUkxDb25kaXRpb25Jc0Nhc2VTZW5zaXRpdmUgeyBmYWxzZSB9
OwogICAgIFJlc291cmNlRmxhZ3MgZmxhZ3MgeyAwIH07CiAgICAgVmVjdG9yPFN0cmluZz4gY29u
ZGl0aW9uczsKLSAgICBlbnVtIGNsYXNzIENvbmRpdGlvblR5cGUgeworICAgIGVudW0gY2xhc3Mg
Q29uZGl0aW9uVHlwZSA6IHVpbnQ4X3QgewogICAgICAgICBOb25lLAotICAgICAgICBJZkRvbWFp
biwKLSAgICAgICAgVW5sZXNzRG9tYWluLAogICAgICAgICBJZlRvcFVSTCwKICAgICAgICAgVW5s
ZXNzVG9wVVJMLAogICAgIH0gY29uZGl0aW9uVHlwZSB7IENvbmRpdGlvblR5cGU6Ok5vbmUgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
LmNwcAppbmRleCA1YTJhNTI1OTNiNTBmYmJiYmU0NTIwMDc0ZWIwZjkzMmMyNjU0Y2RjLi45Yzlm
OGMwZDUzNmEwNjc2MGMwMjcxY2EzODEzNjZmY2I4YjE2YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwCkBAIC00NCwxMSAr
NDQsNiBAQCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6fldlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0KCkKIHsKIH0KIAotYm9vbCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y29uZGl0
aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9kYXRhLmNvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKLX0KLQogU3Bhbjxjb25zdCB1aW50OF90PiBXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBj
b25zdAogewogICAgIHJldHVybiBzcGFuV2l0aE9mZnNldEFuZExlbmd0aChtX2RhdGEuZmlsdGVy
c1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIG1fZGF0YS5maWx0ZXJzV2l0aG91dENv
bmRpdGlvbnNCeXRlY29kZVNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0LmgKaW5kZXggYzM0MzRhZWQ1ODJiN2NjZDdmZGU2ZDE0MmRi
YTM5NTQxNWMwMWY1Zi4uYjAyMTFiMmFmM2NlMzBiODE4Y2Q4YTNlODk3ZWI2NGQxYmFmODU4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dC5oCkBAIC00OCw3ICs0OCw2IEBAIHByaXZhdGU6CiAgICAgU3Bhbjxjb25zdCB1aW50OF90PiB0
b3BVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdCBmaW5hbDsKICAgICBTcGFuPGNvbnN0IHVpbnQ4
X3Q+IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgZmluYWw7CiAgICAgU3Bhbjxjb25z
dCB1aW50OF90PiBzZXJpYWxpemVkQWN0aW9ucygpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QgZmluYWw7CiAgICAgCiAgICAgU3Bhbjxj
b25zdCB1aW50OF90PiBzcGFuV2l0aE9mZnNldEFuZExlbmd0aChzaXplX3QsIHNpemVfdCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEuY3BwCmluZGV4IGZkZTgzYzJhNmU1OTEzN2ViZGRlYjNiZGU5OWY3MzQy
ZjY2N2Y4NTIuLmVmZGM1MzQ2MGZkM2NmNTg0Y2MyMjI5MGFjNTBlOTE3YTcwYmQyMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhLmNwcApAQCAtNDksNyArNDksNiBAQCB2b2lkIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogICAg
IGVuY29kZXIgPDwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksIGRh
dGFTaXplIH07CiAKLSAgICBlbmNvZGVyIDw8IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsK
ICAgICBlbmNvZGVyIDw8IGFjdGlvbnNPZmZzZXQ7CiAgICAgZW5jb2RlciA8PCBhY3Rpb25zU2l6
ZTsKICAgICBlbmNvZGVyIDw8IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0
OwpAQCAtNzYsMTEgKzc1LDYgQEAgc3RkOjpvcHRpb25hbDxXZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGE+IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZGUKICAgICBpZiAoIWRh
dGEpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKLSAgICBkZWNvZGVyID4+IGNvbmRpdGlv
bnNBcHBseU9ubHlUb0RvbWFpbjsKLSAgICBpZiAoIWNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFp
bikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQogICAgIHN0ZDo6b3B0aW9uYWw8c2l6
ZV90PiBhY3Rpb25zT2Zmc2V0OwogICAgIGRlY29kZXIgPj4gYWN0aW9uc09mZnNldDsKICAgICBp
ZiAoIWFjdGlvbnNPZmZzZXQpCkBAIC0xMzQsNyArMTI4LDYgQEAgc3RkOjpvcHRpb25hbDxXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6ZGUKICAgICByZXR1cm4ge3sKICAgICAgICAgV1RGTW92ZSgqaWRlbnRpZmllciksCiAgICAg
ICAgIGRhdGEucmVsZWFzZU5vbk51bGwoKSwKLSAgICAgICAgV1RGTW92ZSgqY29uZGl0aW9uc0Fw
cGx5T25seVRvRG9tYWluKSwKICAgICAgICAgV1RGTW92ZSgqYWN0aW9uc09mZnNldCksCiAgICAg
ICAgIFdURk1vdmUoKmFjdGlvbnNTaXplKSwKICAgICAgICAgV1RGTW92ZSgqZmlsdGVyc1dpdGhv
dXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaAppbmRleCBkMTRjMjEwYjA0MTlk
ODA5ZDk3Zjc4MDk1ZTBkYjMzYjY3MjNiMjc5Li5jYjA1NjI4MjU5ZDY5NWQzNTRkYWQxODNjOGI2
ZGJjMzhlODg0YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaApAQCAtNDEsMTAgKzQxLDkgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSB7CiBwdWJsaWM6
Ci0gICAgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKFN0cmluZyYmIGlkZW50aWZpZXIs
IFJlZjxTaGFyZWRNZW1vcnk+JiYgZGF0YSwgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21h
aW4sIHNpemVfdCBhY3Rpb25zT2Zmc2V0LCBzaXplX3QgYWN0aW9uc1NpemUsIHNpemVfdCBmaWx0
ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IGZpbHRlcnNXaXRob3V0
Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgc2l6ZV90IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVj
b2RlT2Zmc2V0LCBzaXplX3QgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLCBzaXpl
X3QgdG9wVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3QgdG9wVVJMRmlsdGVyc0J5dGVj
b2RlU2l6ZSwgc2l6ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3QgZnJh
bWVVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQorICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YShTdHJpbmcmJiBpZGVudGlmaWVyLCBSZWY8U2hhcmVkTWVtb3J5PiYmIGRhdGEsIHNpemVf
dCBhY3Rpb25zT2Zmc2V0LCBzaXplX3QgYWN0aW9uc1NpemUsIHNpemVfdCBmaWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgc2l6ZV90IGZpbHRlcnNXaXRob3V0Q29uZGl0aW9u
c0J5dGVjb2RlU2l6ZSwgc2l6ZV90IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0
LCBzaXplX3QgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLCBzaXplX3QgdG9wVVJM
RmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3QgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSwg
c2l6ZV90IGZyYW1lVVJMRmlsdGVyc0J5dGVjb2RlT2Zmc2V0LCBzaXplX3QgZnJhbWVVUkxGaWx0
ZXJzQnl0ZWNvZGVTaXplKQogICAgICAgICA6IGlkZW50aWZpZXIoV1RGTW92ZShpZGVudGlmaWVy
KSkKICAgICAgICAgLCBkYXRhKFdURk1vdmUoZGF0YSkpCi0gICAgICAgICwgY29uZGl0aW9uc0Fw
cGx5T25seVRvRG9tYWluKGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbikKICAgICAgICAgLCBh
Y3Rpb25zT2Zmc2V0KGFjdGlvbnNPZmZzZXQpCiAgICAgICAgICwgYWN0aW9uc1NpemUoYWN0aW9u
c1NpemUpCiAgICAgICAgICwgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQo
ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQpCkBAIC02Myw3ICs2Miw2IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBpZGVudGlmaWVyOwogICAgIFJlZjxTaGFyZWRNZW1vcnk+
IGRhdGE7Ci0gICAgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4geyAwIH07CiAgICAg
c2l6ZV90IGFjdGlvbnNPZmZzZXQgeyAwIH07CiAgICAgc2l6ZV90IGFjdGlvbnNTaXplIHsgMCB9
OwogICAgIHNpemVfdCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCB7IDAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVs
ZUxpc3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1
bGVMaXN0U3RvcmUuY3BwCmluZGV4IDM2YTZmNGZiMDdmMGFiOWRkYzdhNDYxOGZlZDQyMmVjMzg5
NzQwMzUuLjY0NDkxZTE2MmVjNmM1YmNmYTNmYzRjYjI0OWY4ZDljY2I2MzliMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0
b3JlLmNwcApAQCAtMTEyLDkgKzExMiw5IEBAIHN0cnVjdCBDb250ZW50UnVsZUxpc3RNZXRhRGF0
YSB7CiAgICAgdWludDY0X3QgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplIHsg
MCB9OwogICAgIHVpbnQ2NF90IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSB7IDAg
fTsKICAgICB1aW50NjRfdCBjb25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemUgeyAwIH07Ci0g
ICAgdWludDMyX3QgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluIHsgZmFsc2UgfTsKKyAgICB1
aW50MzJfdCB1bnVzZWQzMmJpdHMgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IGZyYW1lVVJMRmls
dGVyc0J5dGVjb2RlU2l6ZSB7IDAgfTsKLSAgICB1aW50NjRfdCB1bnVzZWQgeyAwIH07IC8vIEFk
ZGl0aW9uYWwgc3BhY2Ugb24gZGlzayByZXNlcnZlZCBzbyB3ZSBjYW4gYWRkIHNvbWV0aGluZyB3
aXRob3V0IGluY3JlbWVudGluZyB0aGUgdmVyc2lvbiBudW1iZXIuCisgICAgdWludDY0X3QgdW51
c2VkNjRiaXRzIHsgMCB9OyAvLyBBZGRpdGlvbmFsIHNwYWNlIG9uIGRpc2sgcmVzZXJ2ZWQgc28g
d2UgY2FuIGFkZCBzb21ldGhpbmcgd2l0aG91dCBpbmNyZW1lbnRpbmcgdGhlIHZlcnNpb24gbnVt
YmVyLgogICAgIAogICAgIHNpemVfdCBmaWxlU2l6ZSgpIGNvbnN0CiAgICAgewpAQCAtMTM4LDkg
KzEzOCw5IEBAIHN0YXRpYyBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSBlbmNvZGVDb250ZW50
UnVsZUxpc3RNZXRhRGF0YShjb25zdCBDb250ZW50UnVsCiAgICAgZW5jb2RlciA8PCBtZXRhRGF0
YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemU7CiAgICAgZW5jb2RlciA8PCBt
ZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemU7CiAgICAgZW5jb2RlciA8
PCBtZXRhRGF0YS5jb25kaXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemU7Ci0gICAgZW5jb2RlciA8
PCBtZXRhRGF0YS5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW47CisgICAgZW5jb2RlciA8PCBt
ZXRhRGF0YS51bnVzZWQzMmJpdHM7CiAgICAgZW5jb2RlciA8PCBtZXRhRGF0YS5mcmFtZVVSTEZp
bHRlcnNCeXRlY29kZVNpemU7Ci0gICAgZW5jb2RlciA8PCBtZXRhRGF0YS51bnVzZWQ7CisgICAg
ZW5jb2RlciA8PCBtZXRhRGF0YS51bnVzZWQ2NGJpdHM7CiAKICAgICBBU1NFUlQoZW5jb2Rlci5i
dWZmZXJTaXplKCkgPT0gQ3VycmVudFZlcnNpb25GaWxlSGVhZGVyU2l6ZSk7CiAgICAgcmV0dXJu
IFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhKGVuY29kZXIuYnVmZmVyKCksIGVuY29kZXIuYnVm
ZmVyU2l6ZSgpKTsKQEAgLTE5OSwxMSArMTk5LDExIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENv
bnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YShjb25z
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgbWV0YURhdGEuY29uZGl0aW9uZWRG
aWx0ZXJzQnl0ZWNvZGVTaXplID0gV1RGTW92ZSgqY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVT
aXplKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGNvbmRpdGlvbnNBcHBseU9ubHlU
b0RvbWFpbjsKLSAgICBkZWNvZGVyID4+IGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbjsKLSAg
ICBpZiAoIWNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbikKKyAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQzMl90PiB1bnVzZWQzMmJpdHM7CisgICAgZGVjb2RlciA+PiB1bnVzZWQzMmJpdHM7CisgICAg
aWYgKCF1bnVzZWQzMmJpdHMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgbWV0
YURhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluID0gV1RGTW92ZSgqY29uZGl0aW9uc0Fw
cGx5T25seVRvRG9tYWluKTsKKyAgICBtZXRhRGF0YS51bnVzZWQzMmJpdHMgPSAwOwogCiAgICAg
aWYgKG1ldGFEYXRhLnZlcnNpb24gPCAxMikKICAgICAgICAgcmV0dXJuIG1ldGFEYXRhOwpAQCAt
MjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbnRlbnRSdWxlTGlzdE1ldGFE
YXRhPiBkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YShjb25zCiAgICAgZGVjb2RlciA+PiB1
bnVzZWQ7CiAgICAgaWYgKCF1bnVzZWQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0g
ICAgbWV0YURhdGEudW51c2VkID0gMDsKKyAgICBtZXRhRGF0YS51bnVzZWQ2NGJpdHMgPSAwOwog
CiAgICAgcmV0dXJuIG1ldGFEYXRhOwogfQpAQCAtMjY5LDcgKzI2OSw2IEBAIHN0YXRpYyBFeHBl
Y3RlZDxNYXBwZWREYXRhLCBzdGQ6OmVycm9yX2NvZGU+IGNvbXBpbGVkVG9GaWxlKFdURjo6U3Ry
aW5nJiYganNvbiwKICAgICAgICAgICAgIEFTU0VSVCghbWV0YURhdGEuZmlsdGVyc1dpdGhvdXRD
b25kaXRpb25zQnl0ZWNvZGVTaXplKTsKICAgICAgICAgICAgIEFTU0VSVCghbWV0YURhdGEuZmls
dGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplKTsKICAgICAgICAgICAgIEFTU0VSVCghbWV0
YURhdGEuY29uZGl0aW9uZWRGaWx0ZXJzQnl0ZWNvZGVTaXplKTsKLSAgICAgICAgICAgIEFTU0VS
VCghbWV0YURhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKTsKICAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgdm9pZCB3cml0ZVNvdXJjZShXVEY6OlN0cmluZyYmIHNvdXJjZUpTT04p
IGZpbmFsCkBAIC0zMTMsMTQgKzMxMiwxMyBAQCBzdGF0aWMgRXhwZWN0ZWQ8TWFwcGVkRGF0YSwg
c3RkOjplcnJvcl9jb2RlPiBjb21waWxlZFRvRmlsZShXVEY6OlN0cmluZyYmIGpzb24sCiAgICAg
ICAgICAgICB3cml0ZVRvRmlsZShXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YShieXRlY29kZS5k
YXRhKCksIGJ5dGVjb2RlLnNpemUoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCB3cml0
ZUFjdGlvbnMoVmVjdG9yPFNlcmlhbGl6ZWRBY3Rpb25CeXRlPiYmIGFjdGlvbnMsIGJvb2wgY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKSBmaW5hbAorICAgICAgICB2b2lkIHdyaXRlQWN0aW9u
cyhWZWN0b3I8U2VyaWFsaXplZEFjdGlvbkJ5dGU+JiYgYWN0aW9ucykgZmluYWwKICAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKCFtX2ZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2Rl
V3JpdHRlbik7CiAgICAgICAgICAgICBBU1NFUlQoIW1fZmlsdGVyc1dpdGhDb25kaXRpb25CeXRl
Y29kZVdyaXR0ZW4pOwogICAgICAgICAgICAgQVNTRVJUKCFtX2NvbmRpdGlvbkZpbHRlcnNCeXRl
Y29kZVdyaXR0ZW4pOwogICAgICAgICAgICAgQVNTRVJUKCFtX2FjdGlvbnNXcml0dGVuKTsKICAg
ICAgICAgICAgIG1fYWN0aW9uc1dyaXR0ZW4gKz0gYWN0aW9ucy5zaXplKCk7Ci0gICAgICAgICAg
ICBtX2NvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiA9IGNvbmRpdGlvbnNBcHBseU9ubHlUb0Rv
bWFpbjsKICAgICAgICAgICAgIHdyaXRlVG9GaWxlKFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRh
KGFjdGlvbnMuZGF0YSgpLCBhY3Rpb25zLnNpemUoKSkpOwogICAgICAgICB9CiAgICAgICAgIApA
QCAtMzMxLDcgKzMyOSw2IEBAIHN0YXRpYyBFeHBlY3RlZDxNYXBwZWREYXRhLCBzdGQ6OmVycm9y
X2NvZGU+IGNvbXBpbGVkVG9GaWxlKFdURjo6U3RyaW5nJiYganNvbiwKICAgICAgICAgICAgIG1f
bWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplID0gbV9maWx0ZXJz
V2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVdyaXR0ZW47CiAgICAgICAgICAgICBtX21ldGFEYXRh
LmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSA9IG1fZmlsdGVyc1dpdGhDb25kaXRp
b25CeXRlY29kZVdyaXR0ZW47CiAgICAgICAgICAgICBtX21ldGFEYXRhLmNvbmRpdGlvbmVkRmls
dGVyc0J5dGVjb2RlU2l6ZSA9IG1fY29uZGl0aW9uRmlsdGVyc0J5dGVjb2RlV3JpdHRlbjsKLSAg
ICAgICAgICAgIG1fbWV0YURhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluID0gbV9jb25k
aXRpb25zQXBwbHlPbmx5VG9Eb21haW47CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFdlYktp
dDo6TmV0d29ya0NhY2hlOjpEYXRhIGhlYWRlciA9IGVuY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFE
YXRhKG1fbWV0YURhdGEpOwogICAgICAgICAgICAgaWYgKCFtX2ZpbGVFcnJvciAmJiBzZWVrRmls
ZShtX2ZpbGVIYW5kbGUsIDBsbCwgRmlsZVNlZWtPcmlnaW46OkJlZ2lubmluZykgPT0gLTEpIHsK
QEAgLTM2Myw3ICszNjAsNiBAQCBzdGF0aWMgRXhwZWN0ZWQ8TWFwcGVkRGF0YSwgc3RkOjplcnJv
cl9jb2RlPiBjb21waWxlZFRvRmlsZShXVEY6OlN0cmluZyYmIGpzb24sCiAgICAgICAgIHNpemVf
dCBtX2NvbmRpdGlvbkZpbHRlcnNCeXRlY29kZVdyaXR0ZW4geyAwIH07CiAgICAgICAgIHNpemVf
dCBtX2FjdGlvbnNXcml0dGVuIHsgMCB9OwogICAgICAgICBzaXplX3QgbV9zb3VyY2VXcml0dGVu
IHsgMCB9OwotICAgICAgICBib29sIG1fY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluIHsgZmFs
c2UgfTsKICAgICAgICAgYm9vbCBtX2ZpbGVFcnJvciB7IGZhbHNlIH07CiAgICAgfTsKIApAQCAt
NDI5LDcgKzQyNSw2IEBAIHN0YXRpYyBSZWY8QVBJOjpDb250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4
dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwKICAgICBhdXRvIGNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0RGF0YSA9IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhKAogICAgICAgICBXVEY6OlN0cmluZyhpZGVudGlmaWVyKSwKICAgICAgICAgc2hhcmVkTWVt
b3J5LnJlbGVhc2VOb25OdWxsKCksCi0gICAgICAgIGRhdGEubWV0YURhdGEuY29uZGl0aW9uc0Fw
cGx5T25seVRvRG9tYWluLAogICAgICAgICBoZWFkZXJBbmRTb3VyY2VTaXplLAogICAgICAgICBk
YXRhLm1ldGFEYXRhLmFjdGlvbnNTaXplLAogICAgICAgICBoZWFkZXJBbmRTb3VyY2VTaXplCkBA
IC00NjQsNiArNDU5LDcgQEAgc3RhdGljIFdURjo6U3RyaW5nIGdldENvbnRlbnRSdWxlTGlzdFNv
dXJjZUZyb21NYXBwZWRGaWxlKGNvbnN0IE1hcHBlZERhdGEmIG1hcHAKICAgICBjYXNlIDEwOgog
ICAgIGNhc2UgMTE6CiAgICAgY2FzZSAxMjoKKyAgICBjYXNlIDEzOgogICAgICAgICBpZiAoIW1h
cHBlZERhdGEubWV0YURhdGEuc291cmNlU2l6ZSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElD
b250ZW50UnVsZUxpc3RTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNv
bnRlbnRSdWxlTGlzdFN0b3JlLmgKaW5kZXggN2ZjMDU0NTdlNjRjZjU4OWIwZmIwZTdlMDM2ZjY5
MGZhMmMxN2JhYy4uMjA4MzRkNzg4ZTQwMzYxNDFjZjkyYmU1NGY0MzFiY2I4YTYwZWY2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0
b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlz
dFN0b3JlLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIC8vIHRvIHByZXZlbnQgY3Jh
c2hpbmcgd2hpbGUgbG9hZGluZyBvbGQgZGF0YS4KICAgICAvLyBBbHNvIHVwZGF0ZSBnZXRDb250
ZW50UnVsZUxpc3RTb3VyY2VGcm9tTWFwcGVkRmlsZSB0byBiZSBhYmxlIHRvIGZpbmQgdGhlIG9y
aWdpbmFsIEpTT04KICAgICAvLyBzb3VyY2UgZnJvbSBvbGQgdmVyc2lvbnMuCi0gICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24gPSAx
MjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IEN1cnJlbnRDb250ZW50UnVsZUxpc3RG
aWxlVmVyc2lvbiA9IDEzOwogCiAgICAgc3RhdGljIENvbnRlbnRSdWxlTGlzdFN0b3JlJiBkZWZh
dWx0U3RvcmUoKTsKICAgICBzdGF0aWMgUmVmPENvbnRlbnRSdWxlTGlzdFN0b3JlPiBzdG9yZVdp
dGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAwMWJjNGZkZDZjYWE1OTZlYjZiNmZm
YThiNzBjOTNlYzEzZTczNGQuLjE5MmU4YzMyNzBjYjhlYjIxM2YzZDI1ZGQ0MDg2ZjlhMTY2NWEx
YmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMS0xMi0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgaWYtZG9tYWluIGFuZCB1bmxlc3MtZG9tYWlu
IGNvbnZlcnNpb24gdG8gV0tDb250ZW50UnVsZUxpc3QgcGFyc2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTI2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVz
dFJlcXVlc3RJbXBsKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjp0ZXN0UmVxdWVzdCk6IERlbGV0ZWQuCisKIDIwMjEtMTItMDggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEtWTyB3b3JrIGZv
ciBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5fY2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAppbmRleCBjODNlODc4MjAzNjEzMDJkZWZhYTVmNGUxM2IzZWU5MGY3MzBmODI0Li5mMDIz
NWMyYzMzZTY4YjczZjdjMTkyNDNlN2U5YzA5ODRiZDkzMjQ3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKQEAg
LTY3LDcgKzY3LDYgQEAgc3RydWN0IENvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEgewogICAg
IFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+IGZpbHRlcnNXaXRoQ29uZGl0
aW9uczsKICAgICBWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlPiB0b3BVUkxG
aWx0ZXJzOwogICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+IGZyYW1l
VVJMRmlsdGVyczsKLSAgICBib29sIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiB7IGZhbHNl
IH07CiB9OwogCiBjbGFzcyBJbk1lbW9yeUNvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVu
dCBmaW5hbCA6IHB1YmxpYyBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbkNvbXBp
bGF0aW9uQ2xpZW50IHsKQEAgLTg0LDcgKzgzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2
b2lkIHdyaXRlU291cmNlKFN0cmluZyYmKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgd3JpdGVBY3Rp
b25zKFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6U2VyaWFsaXplZEFjdGlvbkJ5dGU+JiYgYWN0
aW9ucywgYm9vbCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4pIGZpbmFsCisgICAgdm9pZCB3
cml0ZUFjdGlvbnMoVmVjdG9yPENvbnRlbnRFeHRlbnNpb25zOjpTZXJpYWxpemVkQWN0aW9uQnl0
ZT4mJiBhY3Rpb25zKSBmaW5hbAogICAgIHsKICAgICAgICAgRVhQRUNUX0ZBTFNFKGZpbmFsaXpl
ZCk7CiAgICAgICAgIEVYUEVDVF9FUShtX2RhdGEuYWN0aW9ucy5zaXplKCksIDB1bGwpOwpAQCAt
OTMsNyArOTIsNiBAQCBwcml2YXRlOgogICAgICAgICBFWFBFQ1RfRVEobV9kYXRhLnRvcFVSTEZp
bHRlcnMuc2l6ZSgpLCAwdWxsKTsKICAgICAgICAgRVhQRUNUX0VRKG1fZGF0YS5hY3Rpb25zLnNp
emUoKSwgMHVsbCk7CiAgICAgICAgIG1fZGF0YS5hY3Rpb25zLmFwcGVuZFZlY3RvcihhY3Rpb25z
KTsKLSAgICAgICAgbV9kYXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiA9IGNvbmRpdGlv
bnNBcHBseU9ubHlUb0RvbWFpbjsKICAgICB9CiAgICAgCiAgICAgdm9pZCB3cml0ZUZpbHRlcnNX
aXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlKFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0
ZWNvZGU+JiYgYnl0ZWNvZGUpIGZpbmFsCkBAIC0xNDksNyArMTQ3LDYgQEAgcHJpdmF0ZToKICAg
ICBTcGFuPGNvbnN0IHVpbnQ4X3Q+IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4geyBtX2RhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zLmRhdGEoKSwg
bV9kYXRhLmZpbHRlcnNXaXRoQ29uZGl0aW9ucy5zaXplKCkgfTsgfQogICAgIFNwYW48Y29uc3Qg
dWludDhfdD4gdG9wVVJMRmlsdGVyc0J5dGVjb2RlKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyBt
X2RhdGEudG9wVVJMRmlsdGVycy5kYXRhKCksIG1fZGF0YS50b3BVUkxGaWx0ZXJzLnNpemUoKSB9
OyB9CiAgICAgU3Bhbjxjb25zdCB1aW50OF90PiBmcmFtZVVSTEZpbHRlcnNCeXRlY29kZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHsgbV9kYXRhLmZyYW1lVVJMRmlsdGVycy5kYXRhKCksIG1fZGF0
YS5mcmFtZVVSTEZpbHRlcnMuc2l6ZSgpIH07IH0KLSAgICBib29sIGNvbmRpdGlvbnNBcHBseU9u
bHlUb0RvbWFpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGF0YS5jb25kaXRpb25zQXBwbHlP
bmx5VG9Eb21haW47IH0KIAogICAgIEluTWVtb3J5Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uKENv
bXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEmJiBkYXRhKQogICAgICAgICA6IG1fZGF0YShXVEZN
b3ZlKGRhdGEpKQpAQCAtMTcxLDEzICsxNjgsMTcgQEAgc3RhdGljIHN0ZDo6cGFpcjxWZWN0b3I8
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvbj4sIFZlY3RvcjxTdHJpbmc+PiBhbGwK
ICAgICByZXR1cm4geyBXVEZNb3ZlKGFjdGlvbnMpLCBXVEZNb3ZlKGlkZW50aWZpZXJzQXBwbHlp
bmdTdHlsZXNoZWV0cykgfTsKIH0KIAotdm9pZCBzdGF0aWMgdGVzdFJlcXVlc3QoY29uc3QgQ29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCYgY29udGVudEV4dGVuc2lv
bnNCYWNrZW5kLCBjb25zdCBSZXNvdXJjZUxvYWRJbmZvJiByZXNvdXJjZUxvYWRJbmZvLCBWZWN0
b3I8c2l6ZV90PiBleHBlY3RlZEFjdGlvbnMsIHNpemVfdCBzdHlsZXNoZWV0cyA9IDEpCisjZGVm
aW5lIHRlc3RSZXF1ZXN0KC4uLikgdGVzdFJlcXVlc3RJbXBsKF9fTElORV9fLCBfX1ZBX0FSR1Nf
XykKKwordm9pZCBzdGF0aWMgdGVzdFJlcXVlc3RJbXBsKGludCBsaW5lLCBjb25zdCBDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kJiBjb250ZW50RXh0ZW5zaW9uc0Jh
Y2tlbmQsIGNvbnN0IFJlc291cmNlTG9hZEluZm8mIHJlc291cmNlTG9hZEluZm8sIFZlY3Rvcjxz
aXplX3Q+IGV4cGVjdGVkQWN0aW9ucywgc2l6ZV90IHN0eWxlc2hlZXRzID0gMSkKIHsKICAgICBh
dXRvIGFjdGlvbnMgPSBhbGxBY3Rpb25zRm9yUmVzb3VyY2VMb2FkKGNvbnRlbnRFeHRlbnNpb25z
QmFja2VuZCwgcmVzb3VyY2VMb2FkSW5mbyk7CiAgICAgdW5zaWduZWQgZXhwZWN0ZWRTaXplID0g
YWN0aW9ucy5maXJzdC5zaXplKCk7CiAgICAgRVhQRUNUX0VRKGV4cGVjdGVkQWN0aW9ucy5zaXpl
KCksIGV4cGVjdGVkU2l6ZSk7Ci0gICAgaWYgKGV4cGVjdGVkQWN0aW9ucy5zaXplKCkgIT0gZXhw
ZWN0ZWRTaXplKQorICAgIGlmIChleHBlY3RlZEFjdGlvbnMuc2l6ZSgpICE9IGV4cGVjdGVkU2l6
ZSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIlRlc3QgZmFpbHVyZSBhdCBsaW5lICVkIiwgbGlu
ZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgZXhwZWN0ZWRBY3Rpb25zLnNpemUoKTsgKytpKQogICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWRBY3Rpb25zW2ldLCBhY3Rpb25zLmZpcnN0W2ldLmRhdGEoKS5pbmRleCgpKTsKQEAgLTk3Miw3
ICs5NzMsNiBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFN0cmluZ0NvbWJpbmluZykK
ICAgICBBU1NFUlRfRVEoZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnMuc2l6ZSgpLCAyODh1
KTsKICAgICBBU1NFUlRfRVEoZGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnMuc2l6ZSgpLCA1dSk7
CiAgICAgQVNTRVJUX0VRKGRhdGEudG9wVVJMRmlsdGVycy5zaXplKCksIDV1KTsKLSAgICBBU1NF
UlRfRkFMU0UoZGF0YS5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4pOwogCiAgICAgYXV0byBl
eHRlbnNpb25XaXRoRmxhZ3MgPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3Jl
YXRlKCJbIgogICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3Rp
ZmljYXRpb25cIjpcIkFBQVwifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJBXCJ9fSwi
CkBAIC0xNTQ0LDggKzE1NDQsOCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEludmFs
aWRKU09OKQogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlm
LWRvbWFpblwiOltcImFcIl0sXCJpZi10b3AtdXJsXCI6W1wiYVwiXX19XSIsIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7CiAgICAgY2hlY2tDb21waWxlckVy
cm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltdLFwidW5sZXNzLWRvbWFp
blwiOltcImFcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05NdWx0aXBsZUNvbmRp
dGlvbnMpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlm
LXRvcC11cmxcIjpbXCJhXCJdLFwiaWYtZG9tYWluXCI6W1wiYVwiXX19XSIsIENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTk11bHRpcGxlQ29uZGl0aW9ucyk7Ci0gICAgY2hlY2tDb21waWxlckVy
cm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFcIl19fSwge1wiYWN0
aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
d2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXX19XSIsIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTlRvcFVSTEFuZERvbWFpbkNvbmRpdGlvbnMpOwotICAgIGNoZWNrQ29tcGlsZXJF
cnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImlmLXRvcC11cmxcIjpbXCJhXCJdfX0sIHtcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
IndlYmtpdC5vcmdcIixcInVubGVzcy1kb21haW5cIjpbXCJhXCJdfX1dIiwgQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OVG9wVVJMQW5kRG9tYWluQ29uZGl0aW9ucyk7CisgICAgY2hlY2tDb21w
aWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltcImFcIl19fSwg
e1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtZG9tYWluXCI6W1wiYVwiXX19XSIsIHsgfSk7CisgICAg
Y2hlY2tDb21waWxlckVycm9yKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0
cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwiaWYtdG9wLXVybFwiOltc
ImFcIl19fSwge1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wiLFwidW5sZXNzLWRvbWFpblwiOltcImFcIl19fV0i
LCB7IH0pOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcInRlc3RcXFxcLmh0bWxcIiwg
XCJ1bmxlc3MtdG9wLXVybFwiOltcIltcIl19fV0iLCBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05JbnZhbGlkUmVnZXgpOwogICAgIGNoZWNrQ29tcGlsZXJFcnJvcigiW3tcImFjdGlvblwiOntc
InR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5v
cmdcIiwgXCJ1bmV4cGVjdGVkLWlkZW50aWZpZXItc2hvdWxkLWJlLWlnbm9yZWRcIjo1fX1dIiwg
eyB9KTsKIAo=
</data>
<flag name="review"
          id="472127"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>