<?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>231151</bug_id>
          
          <creation_ts>2021-10-03 19:05:58 -0700</creation_ts>
          <short_desc>[libpas] Support variant of malloc that returns the actual size and use that in WTF::Vector</short_desc>
          <delta_ts>2021-10-09 20:07:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>Other</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1799946</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-10-03 19:05:58 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799948</commentid>
    <comment_count>1</comment_count>
      <attachid>440031</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-10-03 19:12:57 -0700</bug_when>
    <thetext>Created attachment 440031
possible patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799957</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-10-03 20:14:20 -0700</bug_when>
    <thetext>almost a perfect score!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802416</commentid>
    <comment_count>3</comment_count>
      <attachid>440719</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-10-09 15:25:55 -0700</bug_when>
    <thetext>Created attachment 440719
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802429</commentid>
    <comment_count>4</comment_count>
      <attachid>440719</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-10-09 20:07:14 -0700</bug_when>
    <thetext>Comment on attachment 440719
the patch

Actually, I&apos;m not going to do this.

I think that the positive perf results are flukes at best.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440031</attachid>
            <date>2021-10-03 19:12:57 -0700</date>
            <delta_ts>2021-10-09 15:25:55 -0700</delta_ts>
            <desc>possible patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>84223</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODM0NTUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDIxLTEwLTAzICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU3VwcG9ydCB2YXJpYW50IG9mIG1hbGxv
YyB0aGF0IHJldHVybnMgdGhlIGFjdHVhbCBzaXplIGFuZCB1c2UgdGhhdCBpbiBXVEY6OlZlY3Rv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTUx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhyZWFk
IHRoZSBsaWJwYXMgbWFsbG9jQW5kUmV0dXJuU2l6ZS1zdHlsZSBBUElzIHRocm91Z2ggRmFzdE1h
bGxvYyBhbmQgdXNlIHRoZW0gaW4gVmVjdG9yLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAo
V1RGOjp0cnlGYXN0WmVyb2VkTWFsbG9jSW1wbCk6CisgICAgICAgIChXVEY6OnRyeUZhc3RNYWxs
b2NJbXBsKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdE1hbGxvY0FuZFJldHVyblNpemUpOgorICAg
ICAgICAoV1RGOjpmYXN0TWFsbG9jQW5kUmV0dXJuU2l6ZSk6CisgICAgICAgIChXVEY6OnRyeUZh
c3RDYWxsb2NJbXBsKToKKyAgICAgICAgKFdURjo6ZmFzdFJlYWxsb2NBbmRSZXR1cm5TaXplKToK
KyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2NJbXBsKToKKyAgICAgICAgKFdURjo6dHJ5RmFz
dFplcm9lZE1hbGxvYyk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OnRyeUZhc3RNYWxsb2MpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKTogRGVsZXRlZC4KKyAgICAgICAg
KFdURjo6dHJ5RmFzdFJlYWxsb2MpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9GYXN0TWFsbG9j
Lmg6CisgICAgICAgIChXVEY6OnRyeUZhc3RNYWxsb2MpOgorICAgICAgICAoV1RGOjp0cnlGYXN0
WmVyb2VkTWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdENhbGxvYyk6CisgICAgICAgIChX
VEY6OnRyeUZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6RmFzdE1hbGxvYzo6bWFsbG9jQW5k
UmV0dXJuU2l6ZSk6CisgICAgICAgIChXVEY6OkZhc3RNYWxsb2M6OnRyeU1hbGxvYyk6CisgICAg
ICAgIChXVEY6OkZhc3RNYWxsb2M6OnRyeU1hbGxvY0FuZFJldHVyblNpemUpOgorICAgICAgICAo
V1RGOjpGYXN0TWFsbG9jOjpyZWFsbG9jQW5kUmV0dXJuU2l6ZSk6CisgICAgICAgICogd3RmL09i
amVjdEFuZFNpemUuaDogQWRkZWQuCisgICAgICAgIChXVEY6Ok9iamVjdEFuZFNpemU6Ok9iamVj
dEFuZFNpemUpOgorICAgICAgICAoV1RGOjpPYmplY3RBbmRTaXplOjpvcGVyYXRvciBib29sIGNv
bnN0KToKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChXVEY6OlZlY3RvckJ1ZmZl
ckJhc2U6OmFsbG9jYXRlQnVmZmVyKToKKyAgICAgICAgKFdURjo6VmVjdG9yQnVmZmVyQmFzZTo6
cmVhbGxvY2F0ZUJ1ZmZlcik6CisKIDIwMjEtMTAtMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTGliXSBNZWRpYSBzZXNzaW9uIG1hbmFnZXIg
dW5hYmxlIHRvIGhhbmRsZSBtb3JlIHRoYW4gb25lIHNlc3Npb24KSW5kZXg6IFNvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjgzNDU1KQorKysgU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjM1
LDYgKzIzNSw3IEBACiAJCTBGNDU3MDQyMUJFNUI1OEYwMDYyQTYyOSAvKiBEb21pbmF0b3JzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvbWluYXRvcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NTcwNDQxQkU4MzQ0MTAwNjJBNjI5IC8qIEJ1YmJsZVNv
cnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnViYmxlU29ydC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjREOEM3MTFGQzFFN0NFMDAxRDMyQUMgLyogU2lu
Z2x5TGlua2VkTGlzdFdpdGhUYWlsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNpbmdseUxpbmtlZExpc3RXaXRoVGFpbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjUyMTJFQTI3MEE0QkMyMDAzNEUxRUQgLyogT2JqZWN0QW5kU2l6ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBPYmplY3RBbmRTaXplLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUJG
MTY1MUYyMzE3ODMwMDI5RDkxRCAvKiBOYXR1cmFsTG9vcHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0
dXJhbExvb3BzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUJGMTc0MUYyM0Q0
OUEwMDI5RDkxRCAvKiBHaWdhY2FnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHaWdhY2FnZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUJGMTc1MUYyM0Q0OUEwMDI5RDkx
RCAvKiBHaWdhY2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHaWdhY2FnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTE5Niw2ICsxMTk3LDcgQEAKIAkJCQlBOEE0NzJENTE1MUE4MjVC
MDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi8sCiAJCQkJQThBNDcyRDYxNTFBODI1QjAw
NDEyM0ZGIC8qIE51bWJlck9mQ29yZXMuaCAqLywKIAkJCQk3RTI5QzMzRDE1RkZENzlCMDA1MTZE
NjEgLyogT2JqQ1J1bnRpbWVFeHRyYXMuaCAqLywKKwkJCQkwRjUyMTJFQTI3MEE0QkMyMDAzNEUx
RUQgLyogT2JqZWN0QW5kU2l6ZS5oICovLAogCQkJCTgzNDhCQTBEMjFGQkMwRDQwMEZEMzA1NCAv
KiBPYmplY3RJZGVudGlmaWVyLmNwcCAqLywKIAkJCQk4M0E4QUMzRDFGQUJCRTk0MDAyMDY0QUMg
LyogT2JqZWN0SWRlbnRpZmllci5oICovLAogCQkJCUNENDhBODcwMjRDOEEyMTYwMEY1ODAwQyAv
KiBPYnNlcnZlci5oICovLApJbmRleDogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHJldmlzaW9uIDI4MzQ1
NSkKKysrIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzQsNyArMTM0LDcgQEAgdm9pZCogZmFzdE1lbUR1cChjb25zdCB2b2lkKiBtZW0sIHNpemVfdAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RaZXJv
ZWRNYWxsb2Moc2l6ZV90IG4pIAordm9pZCogdHJ5RmFzdFplcm9lZE1hbGxvY0ltcGwoc2l6ZV90
IG4pIAogewogICAgIHZvaWQqIHJlc3VsdDsKICAgICBpZiAoIXRyeUZhc3RNYWxsb2MobikuZ2V0
VmFsdWUocmVzdWx0KSkKQEAgLTIxOCwxMyArMjE4LDE4IEBAIHZvaWQgZmFzdEFsaWduZWRGcmVl
KHZvaWQqIHApIAogCiAjZW5kaWYgLy8gT1MoV0lORE9XUykKIAotVHJ5TWFsbG9jUmV0dXJuVmFs
dWUgdHJ5RmFzdE1hbGxvYyhzaXplX3QgbikgCit2b2lkKiB0cnlGYXN0TWFsbG9jSW1wbChzaXpl
X3QgbikgCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOwogICAgIEFTU0VSVCghZm9y
YmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNv
dW50KTsKICAgICByZXR1cm4gbWFsbG9jKG4pOwogfQogCitPYmplY3RBbmRTaXplIHRyeUZhc3RN
YWxsb2NBbmRSZXR1cm5TaXplKHNpemVfdCBuKSAKK3sKKyAgICByZXR1cm4gT2JqZWN0QW5kU2l6
ZSh0cnlGYXN0TWFsbG9jSW1wbChuKSwgbik7Cit9CisKIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90
IG4pIAogewogICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQobik7CkBAIC0yMzYsNyArMjQxLDEy
IEBAIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IG4pIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LVRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG5fZWxlbWVudHMsIHNp
emVfdCBlbGVtZW50X3NpemUpCitPYmplY3RBbmRTaXplIGZhc3RNYWxsb2NBbmRSZXR1cm5TaXpl
KHNpemVfdCBuKQoreworICAgIHJldHVybiBPYmplY3RBbmRTaXplKGZhc3RNYWxsb2MobiksIG4p
OworfQorCit2b2lkKiB0cnlGYXN0Q2FsbG9jSW1wbChzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90
IGVsZW1lbnRfc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobl9lbGVtZW50cyAq
IGVsZW1lbnRfc2l6ZSk7CiAgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8
IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwpAQCAtMjY5LDcgKzI3OSwxMiBA
QCB2b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1UcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXpl
X3QgbikKK09iamVjdEFuZFNpemUgZmFzdFJlYWxsb2NBbmRSZXR1cm5TaXplKHZvaWQqIHAsIHNp
emVfdCBuKQoreworICAgIHJldHVybiBPYmplY3RBbmRTaXplKGZhc3RSZWFsbG9jKHAsIG4pLCBu
KTsKK30KKwordm9pZCogdHJ5RmFzdFJlYWxsb2NJbXBsKHZvaWQqIHAsIHNpemVfdCBuKQogewog
ICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChuKTsKICAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1Vz
ZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7CkBAIC01
MzAsNiArNTQ1LDE5IEBAIHZvaWQqIGZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorT2JqZWN0QW5kU2l6ZSBmYXN0TWFsbG9jQW5kUmV0dXJuU2l6ZShzaXpl
X3Qgc2l6ZSkKK3sKKyAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAgIEFTU0VS
VCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25T
Y29wZUNvdW50KTsKKyAgICBPYmplY3RBbmRTaXplIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6bWFs
bG9jQW5kUmV0dXJuU2l6ZShzaXplKTsKKyAgICBBU1NFUlQocmVzdWx0LnNpemUgPj0gc2l6ZSk7
CisjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NBTExT
VEFDSworICAgIGlmICghQXZvaWRSZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3VudCgp
KQorICAgICAgICBNYWxsb2NDYWxsVHJhY2tlcjo6c2luZ2xldG9uKCkucmVjb3JkTWFsbG9jKHJl
c3VsdC5vYmplY3QsIHJlc3VsdC5zaXplKTsKKyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7Cit9
CisKIHZvaWQqIGZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNp
emUpCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChudW1FbGVtZW50cyAqIGVsZW1lbnRT
aXplKTsKQEAgLTU1Myw2ICs1ODEsMTkgQEAgdm9pZCogZmFzdFJlYWxsb2Modm9pZCogb2JqZWN0
LCBzaXplX3QgcwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK09iamVjdEFuZFNpemUgZmFzdFJl
YWxsb2NBbmRSZXR1cm5TaXplKHZvaWQqIG9iamVjdCwgc2l6ZV90IHNpemUpCit7CisgICAgQVNT
RVJUX0lTX1dJVEhJTl9MSU1JVChzaXplKTsKKyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNj
b3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7CisgICAgT2Jq
ZWN0QW5kU2l6ZSByZXN1bHQgPSBibWFsbG9jOjphcGk6OnJlYWxsb2NBbmRSZXR1cm5TaXplKG9i
amVjdCwgc2l6ZSk7CisgICAgQVNTRVJUKHJlc3VsdC5zaXplID49IHNpemUpOworI2lmIEVOQUJM
RShNQUxMT0NfSEVBUF9CUkVBS0RPV04pICYmIFRSQUNLX01BTExPQ19DQUxMU1RBQ0sKKyAgICBp
ZiAoIUF2b2lkUmVjb3JkaW5nU2NvcGU6OmF2b2lkUmVjb3JkaW5nQ291bnQoKSkKKyAgICAgICAg
TWFsbG9jQ2FsbFRyYWNrZXI6OnNpbmdsZXRvbigpLnJlY29yZFJlYWxsb2Mob2JqZWN0LCByZXN1
bHQub2JqZWN0LCByZXN1bHQuc2l6ZSk7CisjZW5kaWYKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiB2b2lkIGZhc3RGcmVlKHZvaWQqIG9iamVjdCkKIHsKICAgICBibWFsbG9jOjphcGk6OmZyZWUo
b2JqZWN0KTsKQEAgLTYwNCwyNCArNjQ1LDMzIEBAIHZvaWQgZmFzdEFsaWduZWRGcmVlKHZvaWQq
IHApCiAgICAgYm1hbGxvYzo6YXBpOjpmcmVlKHApOwogfQogCi1UcnlNYWxsb2NSZXR1cm5WYWx1
ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBzaXplKQordm9pZCogdHJ5RmFzdE1hbGxvY0ltcGwoc2l6
ZV90IHNpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKHNpemUpOwogICAgIEFTU0VS
VCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25T
Y29wZUNvdW50KTsKICAgICByZXR1cm4gYm1hbGxvYzo6YXBpOjp0cnlNYWxsb2Moc2l6ZSk7CiB9
CiAKLVRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRz
LCBzaXplX3QgZWxlbWVudFNpemUpCitPYmplY3RBbmRTaXplIHRyeUZhc3RNYWxsb2NBbmRSZXR1
cm5TaXplKHNpemVfdCBzaXplKQoreworICAgIEZBSUxfSUZfRVhDRUVEU19MSU1JVChzaXplKTsK
KyAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1VzZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uU2NvcGVDb3VudCk7CisgICAgT2JqZWN0QW5kU2l6ZSByZXN1bHQgPSBibWFsbG9j
OjphcGk6OnRyeU1hbGxvY0FuZFJldHVyblNpemUoc2l6ZSk7CisgICAgQVNTRVJUKHJlc3VsdC5z
aXplID49IHNpemUpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQqIHRyeUZhc3RDYWxs
b2NJbXBsKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKQogewogICAgIEZB
SUxfSUZfRVhDRUVEU19MSU1JVChudW1FbGVtZW50cyAqIGVsZW1lbnRTaXplKTsKICAgICBDaGVj
a2VkU2l6ZSBjaGVja2VkU2l6ZSA9IGVsZW1lbnRTaXplOwogICAgIGNoZWNrZWRTaXplICo9IG51
bUVsZW1lbnRzOwogICAgIGlmIChjaGVja2VkU2l6ZS5oYXNPdmVyZmxvd2VkKCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIHJldHVybiB0cnlGYXN0WmVyb2VkTWFsbG9jKGNoZWNrZWRT
aXplKTsKKyAgICByZXR1cm4gdHJ5RmFzdFplcm9lZE1hbGxvY0ltcGwoY2hlY2tlZFNpemUpOwog
fQogCi1UcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBvYmplY3QsIHNp
emVfdCBuZXdTaXplKQordm9pZCogdHJ5RmFzdFJlYWxsb2NJbXBsKHZvaWQqIG9iamVjdCwgc2l6
ZV90IG5ld1NpemUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG5ld1NpemUpOwogICAg
IEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25TY29wZUNvdW50KTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgJKHJldmlzaW9uIDI4MzQ1NSkK
KysrIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNS0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyMyw3IEBA
CiAjaW5jbHVkZSA8bmV3PgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHd0Zi9EZWJ1
Z0hlYXAuaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0QW5kU2l6ZS5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05NSwxMCArOTYsMjYgQEAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQqIGZhc3RSZWFsbG9jKHZvaQogV1RGX0VYUE9SVF9QUklWQVRF
IGNoYXIqIGZhc3RTdHJEdXAoY29uc3QgY2hhciopIFJFVFVSTlNfTk9OTlVMTDsKIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkKiBmYXN0TWVtRHVwKGNvbnN0IHZvaWQqLCBzaXplX3QpOwogCi1XVEZf
RVhQT1JUX1BSSVZBVEUgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1hbGxvYyhzaXplX3Qp
OwotV1RGX0VYUE9SVF9QUklWQVRFIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RaZXJvZWRN
YWxsb2Moc2l6ZV90KTsKLVdURl9FWFBPUlRfUFJJVkFURSBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0
cnlGYXN0Q2FsbG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKTsKLVdU
Rl9FWFBPUlRfUFJJVkFURSBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lk
Kiwgc2l6ZV90KTsKKy8vIEl0J3MgaW1wb3J0YW50IHRoYXQgdGhlIGNhbGwgYm91bmRhcnkgZm9y
IHRyeUZhc3RCbGFoIGZ1bmN0aW9ucyB1c2UgYXMgcHJpbWl0aXZlIG9mIGEgdHlwZSBhcworLy8g
cG9zc2libGUuIE90aGVyd2lzZSB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgYmUgcGFzc2VkIG9uIHRo
ZSBzdGFjay4gVXN1YWxseSB0aGF0J3Mgbm90IGFuIGlzc3VlLCBidXQKKy8vIGl0IGNhbiBiZSBh
biBpc3N1ZSBmb3IgdGhpbmdzIGFzIGhvdCBhcyBtYWxsb2MuCisvLworLy8gU28gLSBkbyBub3Qg
dXNlIHRoZSB0cnlGYXN0QmxhaEltcGwgZnVuY3Rpb25zIGRpcmVjdGx5OyB0aGV5IGFyZSBvbmx5
IGV4cG9zZWQgdG8gcmVkdWNlIHRoZQorLy8gb3ZlcmhlYWQgb2YgVHJ5TWFsbG9jUmV0dXJuVmFs
dWUuCitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogdHJ5RmFzdE1hbGxvY0ltcGwoc2l6ZV90KTsK
K1dURl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0cnlGYXN0WmVyb2VkTWFsbG9jSW1wbChzaXplX3Qp
OworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQqIHRyeUZhc3RDYWxsb2NJbXBsKHNpemVfdCBudW1F
bGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0
cnlGYXN0UmVhbGxvY0ltcGwodm9pZCosIHNpemVfdCk7CisKK2lubGluZSBUcnlNYWxsb2NSZXR1
cm5WYWx1ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBzaXplKSB7IHJldHVybiB0cnlGYXN0TWFsbG9j
SW1wbChzaXplKTsgfQoraW5saW5lIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RaZXJvZWRN
YWxsb2Moc2l6ZV90IHNpemUpIHsgcmV0dXJuIHRyeUZhc3RaZXJvZWRNYWxsb2NJbXBsKHNpemUp
OyB9CitpbmxpbmUgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3QgbnVt
RWxlbWVudHMsIHNpemVfdCBlbGVtZW50U2l6ZSkgeyByZXR1cm4gdHJ5RmFzdENhbGxvY0ltcGwo
bnVtRWxlbWVudHMsIGVsZW1lbnRTaXplKTsgfQoraW5saW5lIFRyeU1hbGxvY1JldHVyblZhbHVl
IHRyeUZhc3RSZWFsbG9jKHZvaWQqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpIHsgcmV0dXJuIHRy
eUZhc3RSZWFsbG9jSW1wbChvYmplY3QsIG5ld1NpemUpOyB9CisKKy8vIFRoZXNlIHZhcmlhbnRz
IG9mIG1hbGxvYyB3aWxsIHRlbGwgeW91IHRoZSBhY3R1YWwgc2l6ZSBhbGxvY2F0ZWQuCitXVEZf
RVhQT1JUX1BSSVZBVEUgT2JqZWN0QW5kU2l6ZSBmYXN0TWFsbG9jQW5kUmV0dXJuU2l6ZShzaXpl
X3Qgc2l6ZSk7CitXVEZfRVhQT1JUX1BSSVZBVEUgT2JqZWN0QW5kU2l6ZSB0cnlGYXN0TWFsbG9j
QW5kUmV0dXJuU2l6ZShzaXplX3Qgc2l6ZSk7CitXVEZfRVhQT1JUX1BSSVZBVEUgT2JqZWN0QW5k
U2l6ZSBmYXN0UmVhbGxvY0FuZFJldHVyblNpemUodm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSk7
CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGZhc3RGcmVlKHZvaWQqKTsKIApAQCAtMjcxLDE0
ICsyODgsMTcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIAogCiBz
dHJ1Y3QgRmFzdE1hbGxvYyB7CiAgICAgc3RhdGljIHZvaWQqIG1hbGxvYyhzaXplX3Qgc2l6ZSkg
eyByZXR1cm4gZmFzdE1hbGxvYyhzaXplKTsgfQorCisgICAgc3RhdGljIE9iamVjdEFuZFNpemUg
bWFsbG9jQW5kUmV0dXJuU2l6ZShzaXplX3Qgc2l6ZSkgeyByZXR1cm4gZmFzdE1hbGxvY0FuZFJl
dHVyblNpemUoc2l6ZSk7IH0KICAgICAKICAgICBzdGF0aWMgdm9pZCogdHJ5TWFsbG9jKHNpemVf
dCBzaXplKQogICAgIHsKLSAgICAgICAgYXV0byByZXN1bHQgPSB0cnlGYXN0TWFsbG9jKHNpemUp
OwotICAgICAgICB2b2lkKiByZWFsUmVzdWx0OwotICAgICAgICBpZiAocmVzdWx0LmdldFZhbHVl
KHJlYWxSZXN1bHQpKQotICAgICAgICAgICAgcmV0dXJuIHJlYWxSZXN1bHQ7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gdHJ5RmFzdE1hbGxvY0ltcGwoc2l6ZSk7Cisg
ICAgfQorCisgICAgc3RhdGljIE9iamVjdEFuZFNpemUgdHJ5TWFsbG9jQW5kUmV0dXJuU2l6ZShz
aXplX3Qgc2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnlGYXN0TWFsbG9jQW5kUmV0dXJu
U2l6ZShzaXplKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCogemVyb2VkTWFsbG9jKHNpemVf
dCBzaXplKSB7IHJldHVybiBmYXN0WmVyb2VkTWFsbG9jKHNpemUpOyB9CkBAIC0yOTQsNiArMzE0
LDggQEAgc3RydWN0IEZhc3RNYWxsb2MgewogICAgIAogICAgIHN0YXRpYyB2b2lkKiByZWFsbG9j
KHZvaWQqIHAsIHNpemVfdCBzaXplKSB7IHJldHVybiBmYXN0UmVhbGxvYyhwLCBzaXplKTsgfQog
CisgICAgc3RhdGljIE9iamVjdEFuZFNpemUgcmVhbGxvY0FuZFJldHVyblNpemUodm9pZCogcCwg
c2l6ZV90IHNpemUpIHsgcmV0dXJuIGZhc3RSZWFsbG9jQW5kUmV0dXJuU2l6ZShwLCBzaXplKTsg
fQorCiAgICAgc3RhdGljIHZvaWQqIHRyeVJlYWxsb2Modm9pZCogcCwgc2l6ZV90IHNpemUpCiAg
ICAgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHRyeUZhc3RSZWFsbG9jKHAsIHNpemUpOwpJbmRl
eDogU291cmNlL1dURi93dGYvT2JqZWN0QW5kU2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL09iamVjdEFuZFNpemUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV1RGL3d0Zi9P
YmplY3RBbmRTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworI2lmICFVU0UoU1lTVEVNX01BTExPQykKKyNp
bmNsdWRlIDxibWFsbG9jL09iamVjdEFuZFNpemUuaD4KKyNlbmRpZiAvLyAhVVNFKFNZU1RFTV9N
QUxMT0MpCisKK25hbWVzcGFjZSBXVEYgeworCitzdHJ1Y3QgT2JqZWN0QW5kU2l6ZSB7CisgICAg
T2JqZWN0QW5kU2l6ZSgpID0gZGVmYXVsdDsKKworICAgIE9iamVjdEFuZFNpemUodm9pZCogb2Jq
ZWN0LCBzaXplX3Qgc2l6ZSkKKyAgICAgICAgOiBvYmplY3Qob2JqZWN0KQorICAgICAgICAsIHNp
emUoc2l6ZSkKKyAgICB7CisgICAgfQorCisjaWYgIVVTRShTWVNURU1fTUFMTE9DKQorICAgIE9i
amVjdEFuZFNpemUoYm1hbGxvYzo6T2JqZWN0QW5kU2l6ZSBvYmplY3RBbmRTaXplKQorICAgICAg
ICA6IE9iamVjdEFuZFNpemUob2JqZWN0QW5kU2l6ZS5vYmplY3QsIG9iamVjdEFuZFNpemUuc2l6
ZSkKKyAgICB7CisgICAgfQorI2VuZGlmIC8vICFVU0UoU1lTVEVNX01BTExPQykKKworICAgIGV4
cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEhb2Jq
ZWN0OworICAgIH0KKyAgICAKKyAgICB2b2lkKiBvYmplY3QgeyBudWxscHRyIH07CisgICAgc2l6
ZV90IHNpemUgeyAwIH07IC8vIEl0J3MgcG9zc2libGUgZm9yIHRoaXMgdG8gaGF2ZSBhIGdhcmJh
Z2UgdmFsdWUgaWYgIW9iamVjdC4KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBX
VEY6Ok9iamVjdEFuZFNpemU7CisKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCShyZXZpc2lvbiAyODM0NTUpCisrKyBT
b3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOTgsMTYgKzI5OCwxNiBAQCBwdWJs
aWM6CiAgICAgICAgIH0KIAogICAgICAgICBzaXplX3Qgc2l6ZVRvQWxsb2NhdGUgPSBuZXdDYXBh
Y2l0eSAqIHNpemVvZihUKTsKLSAgICAgICAgVCogbmV3QnVmZmVyID0gbnVsbHB0cjsKKyAgICAg
ICAgT2JqZWN0QW5kU2l6ZSBuZXdCdWZmZXI7CiAgICAgICAgIGlmIGNvbnN0ZXhwciAoYWN0aW9u
ID09IEZhaWx1cmVBY3Rpb246OkNyYXNoKQotICAgICAgICAgICAgbmV3QnVmZmVyID0gc3RhdGlj
X2Nhc3Q8VCo+KE1hbGxvYzo6bWFsbG9jKHNpemVUb0FsbG9jYXRlKSk7CisgICAgICAgICAgICBu
ZXdCdWZmZXIgPSBNYWxsb2M6Om1hbGxvY0FuZFJldHVyblNpemUoc2l6ZVRvQWxsb2NhdGUpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG5ld0J1ZmZlciA9IHN0YXRpY19jYXN0PFQqPihN
YWxsb2M6OnRyeU1hbGxvYyhzaXplVG9BbGxvY2F0ZSkpOwotICAgICAgICAgICAgaWYgKFVOTElL
RUxZKCFuZXdCdWZmZXIpKQorICAgICAgICAgICAgbmV3QnVmZmVyID0gTWFsbG9jOjp0cnlNYWxs
b2NBbmRSZXR1cm5TaXplKHNpemVUb0FsbG9jYXRlKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VM
WSghbmV3QnVmZmVyLm9iamVjdCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9Ci0gICAgICAgIG1fY2FwYWNpdHkgPSBzaXplVG9BbGxvY2F0ZSAvIHNpemVvZihUKTsK
LSAgICAgICAgbV9idWZmZXIgPSBuZXdCdWZmZXI7CisgICAgICAgIG1fY2FwYWNpdHkgPSBuZXdC
dWZmZXIuc2l6ZSAvIHNpemVvZihUKTsKKyAgICAgICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxU
Kj4obmV3QnVmZmVyLm9iamVjdCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAt
MzI1LDggKzMyNSw5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG5ld0NhcGFjaXR5ID4gc3RkOjpu
dW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSAvIHNpemVvZihUKSkKICAgICAgICAgICAgIENS
QVNIKCk7CiAgICAgICAgIHNpemVfdCBzaXplVG9BbGxvY2F0ZSA9IG5ld0NhcGFjaXR5ICogc2l6
ZW9mKFQpOwotICAgICAgICBtX2NhcGFjaXR5ID0gc2l6ZVRvQWxsb2NhdGUgLyBzaXplb2YoVCk7
Ci0gICAgICAgIG1fYnVmZmVyID0gc3RhdGljX2Nhc3Q8VCo+KE1hbGxvYzo6cmVhbGxvYyhtX2J1
ZmZlciwgc2l6ZVRvQWxsb2NhdGUpKTsKKyAgICAgICAgT2JqZWN0QW5kU2l6ZSBuZXdCdWZmZXIg
PSBNYWxsb2M6OnJlYWxsb2NBbmRSZXR1cm5TaXplKG1fYnVmZmVyLCBzaXplVG9BbGxvY2F0ZSk7
CisgICAgICAgIG1fY2FwYWNpdHkgPSBuZXdCdWZmZXIuc2l6ZSAvIHNpemVvZihUKTsKKyAgICAg
ICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxUKj4obmV3QnVmZmVyLm9iamVjdCk7CiAgICAgfQog
CiAgICAgdm9pZCBkZWFsbG9jYXRlQnVmZmVyKFQqIGJ1ZmZlclRvRGVhbGxvY2F0ZSkKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI4MzQ4NSkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMSBAQAorMjAyMS0xMC0wMyAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIFN1cHBvcnQgdmFyaWFudCBv
ZiBtYWxsb2MgdGhhdCByZXR1cm5zIHRoZSBhY3R1YWwgc2l6ZSBhbmQgdXNlIHRoYXQgaW4gV1RG
OjpWZWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgaW50cm9kdWNlcyB2YXJpYW50cyBvZiB0aGUgbWFsbG9jL3RyeU1hbGxvYy9yZWFsbG9j
IEFQSXMgdGhhdCByZXR1cm4gdGhlIGFjdHVhbGx5IGFsbG9jYXRlZAorICAgICAgICBzaXplLiBU
aGlzIGlzIGltcG9ydGFudCBmb3IgbGlicGFzIGJlY2F1c2UgbGlicGFzIGhhcyBzbG9wcHkgZHlu
YW1pYyBzaXplIGNsYXNzZXMuIElmIHlvdSBhc2sKKyAgICAgICAgZm9yIG1hbGxvYyg0MiksIHlv
dSBtaWdodCBnZXQgc29tZXRoaW5nIHdpdGggPjQyIGJ5dGVzLCBhbmQgdGhlIGV4YWN0IGFtb3Vu
dCBjYW4gdmFyeSBmcm9tCisgICAgICAgIG1hbGxvYyg0MikgY2FsbCB0byBtYWxsb2MoNDIpIGNh
bGwgYmVjYXVzZSBsaWJwYXMgdXNlcyBzbG9wcHkgc2l6ZSBjbGFzc2VzICh0byBjb250cm9sIGV4
dGVybmFsCisgICAgICAgIGZyYWdtZW50YXRpb24pLCBpdCBjaG9vc2VzIHRob3NlIHNpemUgY2xh
c3NlcyBkeW5hbWljYWxseSwgdGhleSBhcmUgY2hvc2VuIG9uIGEgcGVyLWhlYXAgYmFzaXMsCisg
ICAgICAgIGFuZCB0aGV5IGNoYW5nZSBvdmVyIHRpbWUgKG5vdCB1c3VhbGx5IC0tIGJ1dCB0aGVy
ZSBhcmUgZnVuIGNvcm5lciBjYXNlcyBkdWUgdG8gbWVtYWxpZ24gdGhhdAorICAgICAgICBjYXVz
ZSBzaXplIGNsYXNzZXMgdG8gbW9ycGgpLiBTbywgbm90aGluZyBsaWtlIG1hbGxvY19nb29kX3Np
emUgd291bGQgd29yay4gQXMgd2VsbCwgbGlicGFzJ3MKKyAgICAgICAgYWxsb2NhdGlvbiBmdW5j
dGlvbnMgY2FuIHRyaXZpYWxseSByZXBvcnQgdGhlIGFtb3VudCBvZiBieXRlcyB0aGV5IGFjdHVh
bGx5IGFsbG9jYXRlZC4KKworICAgICAgICBFeHBvc2luZyB0aGUgYWN0dWFsbHkgYWxsb2NhdGVk
IHNpemUgbWVhbnMgdGhhdCBWZWN0b3IgKGFuZCB0aGluZ3MgbGlrZSBpdCkgY2FuIHNldCB0aGVp
cgorICAgICAgICBtX2NhcGFjaXR5IHRvIGJlIGJhc2VkIG9uIHRoZSBhY3R1YWwgc2l6ZSwgbm90
IHRoZSBzaXplIHRoZXkgdGhvdWdodCB0aGV5IHJlcXVlc3RlZC4KKworICAgICAgICBUaGlzIGdl
dHMgcXVpdGUgZnVuIGJlY2F1c2Ugb2YgbXkgZGVzaXJlIHRvIGVuc3VyZSB0aGF0IG1hbGxvYy9m
cmVlIGZhc3QgcGF0aHMgZG9uJ3QgcmVxdWlyZSBhCisgICAgICAgIHN0YWNrIGZyYW1lLCBjYWxs
ZWUgc2F2ZXMsIG9yIFBBQy4gSSd2ZSBmb3VuZCB0aGF0IGVhY2ggb2YgdGhlc2UgdGhpbmdzIG1h
a2VzIGEgc2xpZ2h0CisgICAgICAgIGRpZmZlcmVuY2UuIEJ1dCBhY2hpZXZpbmcgdGhpcyByZXF1
aXJlcyB3cml0aW5nIHRoZSBmYXN0IHBhdGhzIGluIGEgdmVyeSBwYXJ0aWN1bGFyIHdheSwgd2hl
cmUKKyAgICAgICAgdGhlIG9ubHkgc2xvdyBwYXRoIGNhbGwgaXMgYSBzcGVjaWZpYyBraW5kIG9m
IHRhaWwgY2FsbC4KKworICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBibWFsbG9jL09iamVjdEFuZFNpemUuaDogQWRkZWQuCisgICAgICAgIChi
bWFsbG9jOjpPYmplY3RBbmRTaXplOjpPYmplY3RBbmRTaXplKToKKyAgICAgICAgKGJtYWxsb2M6
Ok9iamVjdEFuZFNpemU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIGJtYWxsb2Mv
Ym1hbGxvYy5oOgorICAgICAgICAoYm1hbGxvYzo6YXBpOjp0cnlNYWxsb2NBbmRSZXR1cm5TaXpl
KToKKyAgICAgICAgKGJtYWxsb2M6OmFwaTo6bWFsbG9jQW5kUmV0dXJuU2l6ZSk6CisgICAgICAg
IChibWFsbG9jOjphcGk6OnRyeVJlYWxsb2NBbmRSZXR1cm5TaXplKToKKyAgICAgICAgKGJtYWxs
b2M6OmFwaTo6cmVhbGxvY0FuZFJldHVyblNpemUpOgorICAgICAgICAqIGxpYnBhcy9saWJwYXMu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9i
bWFsbG9jX2hlYXAuYzoKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2FuZF9yZXR1cm5f
c2l6ZV9zbG93KToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX3Ns
b3cpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfc2xvdyk6CisgICAgICAgIChibWFs
bG9jX2FsbG9jYXRlX3Nsb3cpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYW5kX3Jl
dHVybl9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50
X2FuZF9yZXR1cm5fc2l6ZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRf
YW5kX3JldHVybl9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYW5kX3JldHVybl9z
aXplKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfYW5kX3JldHVy
bl9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfemVyb2VkX2FuZF9yZXR1cm5fc2l6
ZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZSk6Cisg
ICAgICAgIChibWFsbG9jX3JlYWxsb2NhdGVfYW5kX3JldHVybl9zaXplKToKKyAgICAgICAgKGJt
YWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUpOgorICAgICAgICAo
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplKToKKyAgICAgICAgKGJt
YWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfYW5kX3JldHVybl9zaXplKToKKyAg
ICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9hbmRfcmV0dXJuX3NpemUp
OgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50
X2FuZF9yZXR1cm5fc2l6ZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV93
aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemUpOgorICAgICAgICAoYm1hbGxvY190cnlfcmVh
bGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfcmVh
bGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfcmVh
bGxvY2F0ZV9hdXhpbGlhcnkpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L2JtYWxsb2NfaGVhcC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVh
cF9pbmxpbmVzLmg6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUpOgorICAg
ICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZSk6CisgICAg
ICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemVf
aW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0dXJu
X3NpemVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYW5kX3JldHVybl9zaXpl
X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2FuZF9y
ZXR1cm5fc2l6ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfYW5k
X3JldHVybl9zaXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2Fu
ZF9yZXR1cm5fc2l6ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19yZWFsbG9jYXRlX2FuZF9y
ZXR1cm5fc2l6ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxp
YXJ5X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9h
dXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9h
bGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUpOgorICAgICAg
ICAoYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxp
bmUpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25t
ZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9h
dXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfYW5kX3JldHVybl9zaXplX2lubGluZSk6CisgICAgICAg
IChibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5saW5l
KToKKyAgICAgICAgKGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXpl
X2lubGluZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsaWduZWRfYWxsb2Nh
dGlvbl9yZXN1bHQuaDoKKyAgICAgICAgKHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0X2Fz
X2FsbG9jYXRpb25fcmVzdWx0KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxs
b2NhdGlvbl9yZXN1bHQuaDoKKyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVf
ZmFpbHVyZSk6CisgICAgICAgIChwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nf
d2l0aF96ZXJvX21vZGUpOgorICAgICAgICAocGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9z
dWNjZXNzKToKKyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKToKKyAgICAgICAg
KHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvX2FjdHVhbCk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2Jp
dGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfZGVidWdfaGVhcC5oOgorICAgICAgICAocGFzX2RlYnVnX2hlYXBfYWxsb2NhdGUpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1
bHQuaDoKKyAgICAgICAgKHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKToK
KyAgICAgICAgKHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Mp
OgorICAgICAgICAocGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9mcm9tX2FsbG9jYXRp
b25fcmVzdWx0KToKKyAgICAgICAgKHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfdG9f
YWxsb2NhdGlvbl9yZXN1bHQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19nZW5l
cmljX2xhcmdlX2ZyZWVfaGVhcC5oOgorICAgICAgICAocGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9o
ZWFwX3RyeV9hbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdl
X2ZyZWVfaW5saW5lcy5oOgorICAgICAgICAocGFzX2xhcmdlX2FsbG9jYXRpb25fcmVzdWx0X2Fz
X2FsbG9jYXRpb25fcmVzdWx0KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfYWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0
X3VwX3ByaW1vcmRpYWxfYnVtcCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZV93aXRoX2ZyZWVfYml0cyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3Ry
eV9hbGxvY2F0ZV9pbmxpbmVfY2FzZXMpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfaW5saW5lX29ubHkpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19vYmplY3Rfd2l0
aF9zaXplLmg6IEFkZGVkLgorICAgICAgICAocGFzX29iamVjdF93aXRoX3NpemVfY3JlYXRlX2Vt
cHR5KToKKyAgICAgICAgKHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZSk6CisgICAgICAgIChw
YXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oOgorICAgICAgICAocGFz
X3RyeV9hbGxvY2F0ZV9pbXBsKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X2FsbG9jYXRlX2FycmF5Lmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2FycmF5X2ltcGwp
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oOgorICAg
ICAgICAocGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9jYWxsYmFjayk6Cisg
ICAgICAgIChwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljKToKKyAgICAgICAgKHBhc190cnlf
cmVhbGxvY2F0ZV9wcmltaXRpdmVfYWxsb2NhdGVfY2FsbGJhY2spOgorICAgICAgICAocGFzX3Ry
eV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Lmg6CisgICAgICAgIChwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2VtcHR5KToKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGUpOgorICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2FzX2Fs
bG9jYXRpb25fcmVzdWx0KToKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF96
ZXJvKToKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOgor
ICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKToKKyAg
ICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCk6IERlbGV0ZWQuCisgICAg
ICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcDoKKyAgICAgICAgKHN0
ZDo6Ym1hbGxvY0FsbG9jYXRlQW5kUmV0dXJuU2l6ZUFuZEFzc2VydFNpemUpOgorICAgICAgICAo
YWRkSXNvSGVhcENoYW9zVGVzdHMpOgorCiAyMDIxLTA5LTMwICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgW2xpYnBhc10gQ2hhbmdlIHRoZSBuYW1lcyBvZiBsaWJw
YXMgaGVhcCBydW50aW1lIGNvbmZpZ3MgdG8gc29tZXRoaW5nIHNpbXBsZXIgKGludHJpbnNpYywg
cHJpbWl0aXZlLCB0eXBlZCwgYW5kIGZsZXgpIGFuZCBhZGQgY29tbWVudHMgZGVzY3JpYmluZyB3
aGF0IHRoZXkgYXJlICh1cGRhdGUgdG8gMzJhYmMxZmQ1NDg5ZTAxYWExYzUwNGFlNDY1NDk2NzA0
N2QzZjA3MikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4MzQ1NSkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxs
b2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUs
OCBAQAogCQkwRjUxOTNGMjI2NkM0MkFEMDA0ODNBMkMgLyogaml0X2hlYXAuYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE5M0VDMjY2QzQyQUMwMDQ4
M0EyQyAvKiBqaXRfaGVhcC5jICovOyB9OwogCQkwRjUxOTNGMzI2NkM0MkFEMDA0ODNBMkMgLyog
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTkzRUQyNjZDNDJBRDAwNDgzQTJDIC8q
IHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyAqLzsgfTsKIAkJMEY1MTkz
RjUyNjZDNDJCRjAwNDgzQTJDIC8qIHBhc190cnlfc2hyaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxOTNGNDI2NkM0MkJGMDA0ODNBMkMgLyog
cGFzX3RyeV9zaHJpbmsuaCAqLzsgfTsKKwkJMEY1MjEyRTcyNzBBMjNDRDAwMzRFMUVEIC8qIHBh
c19vYmplY3Rfd2l0aF9zaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjUyMTJFNjI3MEEyM0NEMDAzNEUxRUQgLyogcGFzX29iamVjdF93aXRoX3Np
emUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjUyMTJFOTI3MEE0QkFCMDAzNEUxRUQgLyogT2JqZWN0QW5kU2l6ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MjEyRTgyNzBBNEJBQjAwMzRFMUVE
IC8qIE9iamVjdEFuZFNpemUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjUyOURFMTI0NTU0NjNGMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUyOURFMDI0
NTU0NjNGMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1NTQ5RUYxRkI1NDcwNDAwN0ZGNzVBIC8qIElz
b1BhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1NTQ5RUUxRkI1NDcwMTAwN0ZGNzVBIC8qIElzb1BhZ2UuY3BwICovOyB9OwogCQkwRjVCRjE0
NzFGMjJBOEIxMDAyOUQ5MUQgLyogSGVhcEtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUJGMTQ2MUYyMkE4QjEwMDI5RDkxRCAvKiBIZWFwS2lu
ZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02
OTMsNiArNjk1LDggQEAKIAkJMEY1MTkzRUMyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IGppdF9oZWFwLmM7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjUxOTNFRDI2NkM0MkFEMDA0ODNBMkMgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0
b3JfZGF0YS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYmFzaWNfaGVh
cF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
YmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGNTE5M0Y0MjY2QzQyQkYwMDQ4M0EyQyAvKiBwYXNfdHJ5X3Nocmluay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfdHJ5X3Nocmluay5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9zaHJpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY1MjEyRTYyNzBBMjNDRDAwMzRFMUVEIC8qIHBhc19vYmplY3Rfd2l0aF9zaXpl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19vYmplY3Rfd2l0aF9zaXpl
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfb2JqZWN0X3dpdGhfc2l6ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjUyMTJFODI3MEE0QkFCMDAzNEUxRUQgLyogT2Jq
ZWN0QW5kU2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPYmplY3RBbmRT
aXplLmg7IHBhdGggPSBibWFsbG9jL09iamVjdEFuZFNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY1MjlERTAyNDU1NDYzRjAwMzg1QThDIC8qIGlzb19oZWFwX3JlZi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBpc29faGVhcF9yZWYuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX3JlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjU1NDlFRTFGQjU0NzAxMDA3RkY3NUEgLyogSXNvUGFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJc29QYWdlLmNwcDsgcGF0aCA9IGJtYWxsb2MvSXNv
UGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUJGMTQ2MUYyMkE4QjEw
MDI5RDkxRCAvKiBIZWFwS2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBIZWFwS2luZC5oOyBwYXRoID0g
Ym1hbGxvYy9IZWFwS2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcxNSw2
ICsxNzE5LDcgQEAKIAkJCQkwRkM0MEFEMjI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX211dGF0aW9u
X2NvdW50LmggKi8sCiAJCQkJMEY4NzAwNEUyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19vYmplY3Rf
a2luZC5oICovLAogCQkJCTBGQzQwQTNCMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfb2JqZWN0X3Np
emVfbW9kZS5oICovLAorCQkJCTBGNTIxMkU2MjcwQTIzQ0QwMDM0RTFFRCAvKiBwYXNfb2JqZWN0
X3dpdGhfc2l6ZS5oICovLAogCQkJCTBGODcwMDVFMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFn
ZV9iYXNlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEY4NzAwNTYyNUFGOEExQTAwMEUxQUJG
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKIAkJCQkwRjg3MDA0
RDI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCAqLywKQEAg
LTIwMzcsNiArMjA0Miw3IEBACiAJCQkJMTRDODk5MkExQ0M0ODVFNzAwMjdBMDU3IC8qIE1hcC5o
ICovLAogCQkJCTE0M0NCODFBMTkwMjJCQzkwMEIxNkE0NSAvKiBNdXRleC5jcHAgKi8sCiAJCQkJ
MTQzQ0I4MUIxOTAyMkJDOTAwQjE2QTQ1IC8qIE11dGV4LmggKi8sCisJCQkJMEY1MjEyRTgyNzBB
NEJBQjAwMzRFMUVEIC8qIE9iamVjdEFuZFNpemUuaCAqLywKIAkJCQlFMzI4RDg0QzIzQ0VCMzg5
MDA1NDVCMTggLyogUGFja2VkLmggKi8sCiAJCQkJMEY1QkYxNDgxRjIyQThEODAwMjlEOTFEIC8q
IFBlckhlYXBLaW5kLmggKi8sCiAJCQkJMEYyNkE3QTQyMDU0ODMwRDAwOTBBMTQxIC8qIFBlclBy
b2Nlc3MuY3BwICovLApAQCAtMjEzMiw2ICsyMTM4LDcgQEAKIAkJCQkwRjUyOURFMTI0NTU0NjNG
MDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDk0MDI0
NTE0OTQ0MDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NDA5NTMyNDUxNDk0NDAwODc2REEwIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjUyMTJFNzI3MEEyM0NEMDAzNEUxRUQgLyogcGFzX29iamVjdF93aXRoX3Np
emUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODNDMUY5NTQxQjAwMEYxQUJDQiAvKiBJc29B
bGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODI2MUY5NTQxQjAwMEYxQUJDQiAv
KiBJc29BbGxvY2F0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjg0MTFGOTU0
MUIwMDBGMUFCQ0IgLyogSXNvQ29uZmlnLmggaW4gSGVhZGVycyAqLywKQEAgLTIzODIsNiArMjM4
OSw3IEBACiAJCQkJMEZDNDBCOUMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2cuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGODcwMDY1MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfbWVkaXVtX21lZ2Fw
YWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIwNDI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjUyMTJFOTI3MEE0
QkFCMDAzNEUxRUQgLyogT2JqZWN0QW5kU2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBC
NUEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBCNEUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19tb25vdG9uaWNfdGltZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCQUQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19tdXRhdGlvbl9jb3Vu
dC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL09iamVjdEFu
ZFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL09iamVjdEFuZFNp
emUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL09iamVjdEFuZFNp
emUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWxn
b3JpdGhtLmgiCisjaW5jbHVkZSAiQkFzc2VydC5oIgorCisjaWYgQlVTRShMSUJQQVMpCisjaWZu
ZGVmIFBBU19CTUFMTE9DCisjZGVmaW5lIFBBU19CTUFMTE9DIDEKKyNlbmRpZgorI2luY2x1ZGUg
InBhc19vYmplY3Rfd2l0aF9zaXplLmgiCisjZW5kaWYgLy8gQlVTRShMSUJQQVMpCisKK25hbWVz
cGFjZSBibWFsbG9jIHsKKworc3RydWN0IE9iamVjdEFuZFNpemUgeworICAgIE9iamVjdEFuZFNp
emUoKSA9IGRlZmF1bHQ7CisKKyAgICBPYmplY3RBbmRTaXplKHZvaWQqIG9iamVjdCwgc2l6ZV90
IHNpemUpCisgICAgICAgIDogb2JqZWN0KG9iamVjdCkKKyAgICAgICAgLCBzaXplKHNpemUpCisg
ICAgeworICAgIH0KKworI2lmIEJVU0UoTElCUEFTKQorICAgIE9iamVjdEFuZFNpemUocGFzX29i
amVjdF93aXRoX3NpemUgb2JqZWN0V2l0aFNpemUpCisgICAgICAgIDogT2JqZWN0QW5kU2l6ZShv
YmplY3RXaXRoU2l6ZS5vYmplY3QsIG9iamVjdFdpdGhTaXplLnNpemUpCisgICAgeworICAgIH0K
KyNlbmRpZiAvLyBCVVNFKExJQlBBUykKKworICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEhb2JqZWN0OworICAgIH0KKyAgICAKKyAgICB2
b2lkKiBvYmplY3QgeyBudWxscHRyIH07CisgICAgc2l6ZV90IHNpemUgeyAwIH07IC8vIEl0J3Mg
cG9zc2libGUgZm9yIHRoaXMgdG8gaGF2ZSBhIGdhcmJhZ2UgdmFsdWUgaWYgIW9iamVjdC4KK307
CisKK30gLy8gbmFtZXNwYWNlIGJtYWxsb2MKKworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL2JtYWxsb2MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxs
b2MuaAkocmV2aXNpb24gMjgzNDU1KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9ibWFsbG9j
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAj
aW5jbHVkZSAiSXNvVExTLmgiCiAjaW5jbHVkZSAiTXV0ZXguaCIKKyNpbmNsdWRlICJPYmplY3RB
bmRTaXplLmgiCiAjaW5jbHVkZSAiUGVySGVhcEtpbmQuaCIKICNpbmNsdWRlICJTY2F2ZW5nZXIu
aCIKIApAQCAtNjcsNiArNjgsMTcgQEAgQklOTElORSB2b2lkKiB0cnlNYWxsb2Moc2l6ZV90IHNp
emUsIEhlYQogI2VuZGlmCiB9CiAKK0JJTkxJTkUgT2JqZWN0QW5kU2l6ZSB0cnlNYWxsb2NBbmRS
ZXR1cm5TaXplKHNpemVfdCBzaXplLCBIZWFwS2luZCBraW5kID0gSGVhcEtpbmQ6OlByaW1hcnkp
Cit7CisjaWYgQlVTRShMSUJQQVMpCisgICAgaWYgKCFpc0dpZ2FjYWdlKGtpbmQpKQorICAgICAg
ICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZShzaXpl
KTsKKyAgICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2FuZF9yZXR1cm5f
c2l6ZV9pbmxpbmUoJmhlYXBGb3JLaW5kKGdpZ2FjYWdlS2luZChraW5kKSksIHNpemUpOworI2Vs
c2UKKyAgICByZXR1cm4gT2JqZWN0QW5kU2l6ZShDYWNoZTo6dHJ5QWxsb2NhdGUoa2luZCwgc2l6
ZSksIHNpemUpOworI2VuZGlmCit9CisKIC8vIENyYXNoZXMgb24gZmFpbHVyZS4KIEJJTkxJTkUg
dm9pZCogbWFsbG9jKHNpemVfdCBzaXplLCBIZWFwS2luZCBraW5kID0gSGVhcEtpbmQ6OlByaW1h
cnkpCiB7CkBAIC03OSw2ICs5MSwxNyBAQCBCSU5MSU5FIHZvaWQqIG1hbGxvYyhzaXplX3Qgc2l6
ZSwgSGVhcEtpCiAjZW5kaWYKIH0KIAorQklOTElORSBPYmplY3RBbmRTaXplIG1hbGxvY0FuZFJl
dHVyblNpemUoc2l6ZV90IHNpemUsIEhlYXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSkK
K3sKKyNpZiBCVVNFKExJQlBBUykKKyAgICBpZiAoIWlzR2lnYWNhZ2Uoa2luZCkpCisgICAgICAg
IHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZSk7Cisg
ICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2FuZF9yZXR1cm5fc2l6ZV9pbmxp
bmUoJmhlYXBGb3JLaW5kKGdpZ2FjYWdlS2luZChraW5kKSksIHNpemUpOworI2Vsc2UKKyAgICBy
ZXR1cm4gT2JqZWN0QW5kU2l6ZShDYWNoZTo6YWxsb2NhdGUoa2luZCwgc2l6ZSksIHNpemUpOwor
I2VuZGlmCit9CisKIEJFWFBPUlQgdm9pZCogbWFsbG9jT3V0T2ZMaW5lKHNpemVfdCBzaXplLCBI
ZWFwS2luZCBraW5kID0gSGVhcEtpbmQ6OlByaW1hcnkpOwogCiAvLyBSZXR1cm5zIG51bGwgb24g
ZmFpbHVyZS4KQEAgLTEwNyw2ICsxMzAsOSBAQCBCSU5MSU5FIHZvaWQqIG1lbWFsaWduKHNpemVf
dCBhbGlnbm1lbnQsCiAjZW5kaWYKIH0KIAorLy8gTk9URTogV2UgY291bGQgYWRkIG1lbWFsaWdu
IHZhcmlhbnRzIHRoYXQgcmV0dXJuIE9iamVjdEFuZFNpemU7IHdlIGp1c3QgaGF2ZW4ndCBoYWQg
YSBuZWVkIGZvciB0aGVtCisvLyB5ZXQuCisKIC8vIFJldHVybnMgbnVsbCBvbiBmYWlsdXJlLgog
QklOTElORSB2b2lkKiB0cnlSZWFsbG9jKHZvaWQqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUsIEhl
YXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSkKIHsKQEAgLTEyMiw2ICsxNDgsMjAgQEAg
QklOTElORSB2b2lkKiB0cnlSZWFsbG9jKHZvaWQqIG9iamVjdCwgcwogI2VuZGlmCiB9CiAKK0JJ
TkxJTkUgT2JqZWN0QW5kU2l6ZSB0cnlSZWFsbG9jQW5kUmV0dXJuU2l6ZSh2b2lkKiBvYmplY3Qs
IHNpemVfdCBuZXdTaXplLCBIZWFwS2luZCBraW5kID0gSGVhcEtpbmQ6OlByaW1hcnkpCit7Cisj
aWYgQlVTRShMSUJQQVMpCisgICAgaWYgKCFpc0dpZ2FjYWdlKGtpbmQpKSB7CisgICAgICAgIHJl
dHVybiBibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoCisgICAg
ICAgICAgICBvYmplY3QsIG5ld1NpemUsIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1
bCk7CisgICAgfQorICAgIHJldHVybiBibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9h
bmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAgICAgICBvYmplY3QsICZoZWFwRm9yS2luZChnaWdh
Y2FnZUtpbmQoa2luZCkpLCBuZXdTaXplLCBwYXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nlc3Nm
dWwpOworI2Vsc2UKKyAgICByZXR1cm4gT2JqZWN0QW5kU2l6ZShDYWNoZTo6dHJ5UmVhbGxvY2F0
ZShraW5kLCBvYmplY3QsIG5ld1NpemUpLCBuZXdTaXplKTsKKyNlbmRpZgorfQorCiAvLyBDcmFz
aGVzIG9uIGZhaWx1cmUuCiBCSU5MSU5FIHZvaWQqIHJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXpl
X3QgbmV3U2l6ZSwgSGVhcEtpbmQga2luZCA9IEhlYXBLaW5kOjpQcmltYXJ5KQogewpAQCAtMTM1
LDYgKzE3NSwxOCBAQCBCSU5MSU5FIHZvaWQqIHJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplCiAj
ZW5kaWYKIH0KIAorQklOTElORSBPYmplY3RBbmRTaXplIHJlYWxsb2NBbmRSZXR1cm5TaXplKHZv
aWQqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUsIEhlYXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJp
bWFyeSkKK3sKKyNpZiBCVVNFKExJQlBBUykKKyAgICBpZiAoIWlzR2lnYWNhZ2Uoa2luZCkpCisg
ICAgICAgIHJldHVybiBibWFsbG9jX3JlYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZShv
YmplY3QsIG5ld1NpemUsIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCk7CisgICAg
cmV0dXJuIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGlu
ZSgKKyAgICAgICAgb2JqZWN0LCAmaGVhcEZvcktpbmQoZ2lnYWNhZ2VLaW5kKGtpbmQpKSwgbmV3
U2l6ZSwgcGFzX3JlYWxsb2NhdGVfZnJlZV9pZl9zdWNjZXNzZnVsKTsKKyNlbHNlCisgICAgcmV0
dXJuIE9iamV0QW5kU2l6ZShDYWNoZTo6cmVhbGxvY2F0ZShraW5kLCBvYmplY3QsIG5ld1NpemUp
LCBuZXdTaXplKTsKKyNlbmRpZgorfQorCiAvLyBSZXR1cm5zIG51bGwgb24gZmFpbHVyZS4KIC8v
IFRoaXMgQVBJIHdpbGwgZ2l2ZSB5b3UgemVyb2VkIHBhZ2VzIHRoYXQgYXJlIHJlYWR5IHRvIGJl
IHVzZWQuIFRoZXNlIHBhZ2VzCiAvLyB3aWxsIHBhZ2UgZmF1bHQgb24gZmlyc3QgYWNjZXNzLiBJ
dCByZXR1cm5zIHRvIHlvdSBtZW1vcnkgdGhhdCBpbml0aWFsbHkgb25seQpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjgzNDU1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDcg
QEAKIAkJMEY1MTZFRTMyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE2RUUyMjQ1
NjBGRjUwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggKi87IH07CiAJCTBGNTE2RUU3
MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFNjI0NTYxQTYwMDA0RTJCOEQgLyog
aXNvX2hlYXBfaW5uYXJkcy5oICovOyB9OwogCQkwRjUxOTNFNzI2NkFFNUQ0MDA0ODNBMkMgLyog
SklUSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwICovOyB9
OworCQkwRjUyMTJFNTI3MEEyM0E5MDAzNEUxRUQgLyogcGFzX29iamVjdF93aXRoX3NpemUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTIxMkU0Mjcw
QTIzQTkwMDM0RTFFRCAvKiBwYXNfb2JqZWN0X3dpdGhfc2l6ZS5oICovOyB9OwogCQkwRjUyOURE
RjI0NTU0NjBDMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUyOURERTI0NTU0NjBDMDAzODVBOEMgLyogaXNv
X2hlYXBfcmVmLmggKi87IH07CiAJCTBGNTMxODBGMjJDOTUyOTQwMDNGN0I2QSAvKiBwYXNfZm91
bmRfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTMxODBFMjJDOTUyOTMwMDNGN0I2QSAvKiBwYXNfZm91bmRfaW5kZXguaCAqLzsgfTsKIAkJ
MEY1MzE4MTEyMkM5NTRFRDAwM0Y3QjZBIC8qIEJpdHZlY3RvclRlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTMxODEwMjJDOTU0RUQwMDNG
N0I2QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgKi87IH07CkBAIC04MTUsNiArODE2LDcgQEAKIAkJ
MEY1MTZFRTIyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2ludGVybmFsX2NvbmZpZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjUxNkVFNjI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hl
YXBfaW5uYXJkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBpc29faGVhcF9p
bm5hcmRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE5M0U2MjY2QUU1RDQw
MDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSklUSGVhcFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY1MjEyRTQyNzBBMjNBOTAwMzRFMUVEIC8qIHBhc19vYmplY3Rfd2l0aF9zaXplLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19vYmplY3Rfd2l0aF9zaXplLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTI5RERFMjQ1NTQ2MEMwMDM4NUE4QyAvKiBpc29f
aGVhcF9yZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaXNvX2hlYXBfcmVm
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTMxODBFMjJDOTUyOTMwMDNGN0I2
QSAvKiBwYXNfZm91bmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX2ZvdW5kX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTMxODEw
MjJDOTU0RUQwMDNGN0I2QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCaXR2ZWN0b3JUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNjgxLDYgKzE2ODMsNyBAQAogCQkJCTBGRDQ4QUZEMjNBOUFCQjAwMDI2
QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRjA5MjI2OTIyQjA3QzIxMDA3
RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCiAJCQkJMEY5QTFENEEyNTVGMkNENzAw
QzhEMTFCIC8qIHBhc19vYmplY3Rfa2luZC5oICovLAorCQkJCTBGNTIxMkU0MjcwQTIzQTkwMDM0
RTFFRCAvKiBwYXNfb2JqZWN0X3dpdGhfc2l6ZS5oICovLAogCQkJCTBGOUExRDQyMjU1QUY3MzIw
MEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEY5QTFD
QUIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMu
aCAqLywKIAkJCQkwRjlBMUNENDI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25m
aWdfdXRpbHMuaCAqLywKQEAgLTIxMjUsNiArMjEyOCw3IEBACiAJCQkJMEY2RDU0N0IyM0M1NzNF
MTAwRjQwREJCIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjE1QjI1OUJGNkVDMDA4QjRBODIgLyogcGFzX3B0cl9o
YXNoX21hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFDRjQyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19jb21taXRfc3Bhbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1MjEyRTUyNzBBMjNBOTAw
MzRFMUVEIC8qIHBhc19vYmplY3Rfd2l0aF9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0
OEI2NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjA4RjNBMjJBNUI0MDMwMDM4NjU3NSAvKiBwYXNf
Z2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NjY3MjND
QkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvYm1hbGxvY19oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmMJKHJldmlzaW9uIDI4MzQ1NSkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCSh3b3JraW5nIGNvcHkp
CkBAIC00OCwyNCArNDgsNTYgQEAgcGFzX2hlYXAgYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hl
YXAgPQogCiBwYXNfYWxsb2NhdG9yX2NvdW50cyBibWFsbG9jX2FsbG9jYXRvcl9jb3VudHM7CiAK
K1BBU19ORVZFUl9JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY190cnlfYWxsb2Nh
dGVfYW5kX3JldHVybl9zaXplX3Nsb3coc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIHBhc19v
YmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAgICBi
bWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBsX21lZGl1bV9zbG93X2Nhc2Uoc2l6ZSwgMSkpOworfQor
CitQQVNfTkVWRVJfSU5MSU5FIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVf
YW5kX3JldHVybl9zaXplX3Nsb3coc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIHBhc19vYmpl
Y3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAgICBibWFs
bG9jX2FsbG9jYXRlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZShzaXplLCAxKSk7Cit9CisKK1BBU19O
RVZFUl9JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSkK
K3sKKyAgICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX3Nsb3co
c2l6ZSkub2JqZWN0OworfQorCitQQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2Nh
dGVfc2xvdyhzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hbmRf
cmV0dXJuX3NpemVfc2xvdyhzaXplKS5vYmplY3Q7Cit9CisKIHZvaWQqIGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlKHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9p
bmxpbmUoc2l6ZSk7CiB9CiAKK3Bhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9j
YXRlX2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY190
cnlfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZShzaXplKTsKK30KKwogdm9pZCogYm1h
bGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoc2l6ZV90IHNpemUsIHNpemVfdCBhbGln
bm1lbnQpCiB7CiAgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50
X2lubGluZShzaXplLCBhbGlnbm1lbnQpOwogfQogCitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFs
bG9jX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemUoc2l6ZV90IHNp
emUsIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRl
X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZSwgYWxpZ25tZW50KTsK
K30KKwogdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkKHNpemVfdCBzaXplKQogewog
ICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKHNpemUpOwogfQog
Ci1QQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6
ZSkKK3Bhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRf
cmV0dXJuX3NpemUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2Fs
bG9jYXRlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZShzaXplLCAxKS5iZWdpbjsKKyAgICByZXR1cm4g
Ym1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZSk7
CiB9CiAKIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGUoc2l6ZV90IHNpemUpCkBAIC03MywyOCArMTA1
LDU1IEBAIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGUoc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIGJt
YWxsb2NfYWxsb2NhdGVfaW5saW5lKHNpemUpOwogfQogCitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBi
bWFsbG9jX2FsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1
cm4gYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKHNpemUpOworfQorCiB2
b2lkKiBibWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KHNpemVfdCBzaXplLCBzaXplX3Qg
YWxpZ25tZW50KQogewogICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50
X2lubGluZShzaXplLCBhbGlnbm1lbnQpOwogfQogCitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFs
bG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSwg
c2l6ZV90IGFsaWdubWVudCkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV93aXRoX2Fs
aWdubWVudF9hbmRfcmV0dXJuX3NpemVfaW5saW5lKHNpemUsIGFsaWdubWVudCk7Cit9CisKIHZv
aWQqIGJtYWxsb2NfYWxsb2NhdGVfemVyb2VkKHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBi
bWFsbG9jX2FsbG9jYXRlX3plcm9lZF9pbmxpbmUoc2l6ZSk7CiB9CiAKK3Bhc19vYmplY3Rfd2l0
aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6
ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfYW5kX3JldHVybl9zaXpl
X2lubGluZShzaXplKTsKK30KKwogdm9pZCogYm1hbGxvY190cnlfcmVhbGxvY2F0ZSh2b2lkKiBv
bGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7CiAgICAgcmV0dXJuIGJtYWxsb2Nf
dHJ5X3JlYWxsb2NhdGVfaW5saW5lKG9sZF9wdHIsIG5ld19zaXplLCBmcmVlX21vZGUpOwogfQog
CitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2FuZF9yZXR1cm5f
c2l6ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9m
cmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBibWFsbG9jX3RyeV9yZWFsbG9jYXRl
X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUob2xkX3B0ciwgbmV3X3NpemUsIGZyZWVfbW9kZSk7Cit9
CisKIHZvaWQqIGJtYWxsb2NfcmVhbGxvY2F0ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3Np
emUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZy
ZWVfbW9kZSkKIHsKICAgICByZXR1cm4gYm1hbGxvY19yZWFsbG9jYXRlX2lubGluZShvbGRfcHRy
LCBuZXdfc2l6ZSwgZnJlZV9tb2RlKTsKIH0KIAorcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxv
Y19yZWFsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3Np
emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCit7CisgICAgcmV0dXJuIGJt
YWxsb2NfcmVhbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKG9sZF9wdHIsIG5ld19zaXpl
LCBmcmVlX21vZGUpOworfQorCiB2b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGUocGFzX2hl
YXBfcmVmKiBoZWFwX3JlZikKIHsKICAgICByZXR1cm4gYm1hbGxvY190cnlfaXNvX2FsbG9jYXRl
X2lubGluZShoZWFwX3JlZik7CkBAIC0xNzksMTIgKzIzOCw2MyBAQCB2b2lkKiBibWFsbG9jX3Ry
eV9yZWFsbG9jYXRlX2F1eGlsaWFyeSh2CiAgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X3JlYWxsb2Nh
dGVfYXV4aWxpYXJ5X2lubGluZShvbGRfcHRyLCBoZWFwX3JlZiwgbmV3X3NpemUsIGZyZWVfbW9k
ZSk7CiB9CiAKLXZvaWQqIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnkodm9pZCogb2xkX3B0
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiogaGVhcF9yZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBuZXdfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxs
b2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKK3Bhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2Nf
dHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUocGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiogaGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBi
bWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZShoZWFw
X3JlZiwgc2l6ZSk7Cit9CisKK3Bhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVf
YXV4aWxpYXJ5X2FuZF9yZXR1cm5fc2l6ZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9h
dXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZShoZWFwX3JlZiwgc2l6ZSk7Cit9CisKK3Bh
c19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRf
YW5kX3JldHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAor
ICAgIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhp
bGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoaGVhcF9yZWYsIHNpemUpOworfQor
CitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRf
YW5kX3JldHVybl9zaXplKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hdXhp
bGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoaGVhcF9yZWYsIHNpemUpOworfQor
CitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0
aF9hbGlnbm1lbnRfYW5kX3JldHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYq
IGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXplLAorICAgIHNpemVfdCBhbGlnbm1lbnQpCit7Cisg
ICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVudF9h
bmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAgICAgICBoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50
KTsKK30KKworcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlf
d2l0aF9hbGlnbm1lbnRfYW5kX3JldHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9y
ZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXplLAorICAgIHNpemVfdCBhbGlnbm1lbnQpCit7
CisgICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2Fu
ZF9yZXR1cm5fc2l6ZV9pbmxpbmUoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCk7Cit9CisKK3Bh
c19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2FuZF9y
ZXR1cm5fc2l6ZSh2b2lkKiBvbGRfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19wcmltaXRpdmVfaGVh
cF9yZWYqIGhlYXBfcmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBi
bWFsbG9jX3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKAor
ICAgICAgICBvbGRfcHRyLCBoZWFwX3JlZiwgbmV3X3NpemUsIGZyZWVfbW9kZSk7Cit9CisKK3Bh
c19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVy
bl9zaXplKHZvaWQqIG9sZF9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBo
ZWFwX3JlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9j
YXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfcmVhbGxvY2F0
ZV9hdXhpbGlhcnlfaW5saW5lKG9sZF9wdHIsIGhlYXBfcmVmLCBuZXdfc2l6ZSwgZnJlZV9tb2Rl
KTsKKyAgICByZXR1cm4gYm1hbGxvY19yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3Np
emVfaW5saW5lKG9sZF9wdHIsIGhlYXBfcmVmLCBuZXdfc2l6ZSwgZnJlZV9tb2RlKTsKIH0KIAog
dm9pZCBibWFsbG9jX2RlYWxsb2NhdGUodm9pZCogcHRyKQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmgJKHJldmlzaW9uIDI4MzQ1NSkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEJNQUxMT0NfSEVBUF9ICiAKICNp
bmNsdWRlICJibWFsbG9jX2hlYXBfcmVmLmgiCisjaW5jbHVkZSAicGFzX29iamVjdF93aXRoX3Np
emUuaCIKICNpbmNsdWRlICJwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAicGFz
X3JlYWxsb2NhdGVfZnJlZV9tb2RlLmgiCiAKQEAgLTUyLDYgKzUzLDI0IEBAIFBBU19BUEkgdm9p
ZCogYm1hbGxvY190cnlfcmVhbGxvY2F0ZSh2b2kKIFBBU19BUEkgdm9pZCogYm1hbGxvY19yZWFs
bG9jYXRlKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpOwogCitQ
QVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2FuZF9yZXR1
cm5fc2l6ZShzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOworCitQQVNfQVBJ
IHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0
dXJuX3NpemUoc2l6ZV90IHNpemUpOworCitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJt
YWxsb2NfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplKHNpemVfdCBzaXplKTsKK1BBU19BUEkgcGFz
X29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9hbmRfcmV0
dXJuX3NpemUoc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1l
bnQpOworCitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfemVy
b2VkX2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSk7CisKK1BBU19BUEkgcGFzX29iamVjdF93
aXRoX3NpemUgYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemUodm9pZCogb2xk
X3B0ciwgc2l6ZV90IG5ld19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21v
ZGUgZnJlZV9tb2RlKTsKKworUEFTX0FQSSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3Jl
YWxsb2NhdGVfYW5kX3JldHVybl9zaXplKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKTsKKwogUEFTX0FQSSB2
b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZik7CiBQ
QVNfQVBJIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYp
OwogCkBAIC05MSw2ICsxMTAsNDAgQEAgUEFTX0FQSSB2b2lkKiBibWFsbG9jX3JlYWxsb2NhdGVf
YXV4aWxpYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKTsKIAorUEFTX0FQSSBwYXNfb2JqZWN0
X3dpdGhfc2l6ZSBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXpl
KAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXpl
KTsKK1BBU19BUEkgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlh
cnlfYW5kX3JldHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVm
LAorICAgIHNpemVfdCBzaXplKTsKKworUEFTX0FQSSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFs
bG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZSgKKyAgICBw
YXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICBzaXplX3Qgc2l6ZSk7CitQQVNf
QVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9l
ZF9hbmRfcmV0dXJuX3NpemUoCisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYs
CisgICAgc2l6ZV90IHNpemUpOworCitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemUo
CisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgc2l6ZV90IHNpemUs
CisgICAgc2l6ZV90IGFsaWdubWVudCk7CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJt
YWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZSgK
KyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICBzaXplX3Qgc2l6ZSwK
KyAgICBzaXplX3QgYWxpZ25tZW50KTsKKworUEFTX0FQSSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBi
bWFsbG9jX3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUoCisgICAgdm9p
ZCogb2xkX3B0ciwKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICBz
aXplX3QgbmV3X3NpemUsCisgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSk7
CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlh
cnlfYW5kX3JldHVybl9zaXplKAorICAgIHZvaWQqIG9sZF9wdHIsCisgICAgcGFzX3ByaW1pdGl2
ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgc2l6ZV90IG5ld19zaXplLAorICAgIHBhc19yZWFs
bG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpOworCiBQQVNfQVBJIHZvaWQgYm1hbGxvY19kZWFs
bG9jYXRlKHZvaWQqKTsKIAogUEFTX0FQSSBwYXNfaGVhcCogYm1hbGxvY19mb3JjZV9hdXhpbGlh
cnlfaGVhcF9pbnRvX3Jlc2VydmVkX21lbW9yeShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFw
X3JlZiwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVh
cF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvYm1hbGxvY19oZWFwX2lubGluZXMuaAkocmV2aXNpb24gMjgzNDU1KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtODIsOSArODIsMjcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lD
KAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19p
bnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKK1BBU19BUEkgdm9pZCogYm1hbGxv
Y190cnlfYWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHZvaWQqIGJtYWxsb2Nf
YWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXpl
IGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZV9zbG93KHNpemVfdCBzaXplKTsK
K1BBU19BUEkgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJu
X3NpemVfc2xvdyhzaXplX3Qgc2l6ZSk7CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJu
ICh2b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLmJlZ2luOworICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0ID0gYm1hbGxvY190cnlfYWxs
b2NhdGVfaW1wbF9pbmxpbmVfb25seShzaXplLCAxKTsKKyAgICBpZiAoUEFTX0xJS0VMWShyZXN1
bHQuZGlkX3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gKHZvaWQqKXJlc3VsdC5iZWdpbjsKKyAg
ICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfc2xvdyhzaXplKTsKK30KKworc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRl
X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZV90IHNpemUpCit7CisgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQgPSBibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBs
X2lubGluZV9vbmx5KHNpemUsIDEpOworICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3Vj
Y2VlZCkpCisgICAgICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9h
bGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpOworICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0
ZV9hbmRfcmV0dXJuX3NpemVfc2xvdyhzaXplKTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqCkBAIC05Myw2ICsxMTEsMTMgQEAgYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9h
bGlnbm1lbnRfaW5saQogICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0
aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCitzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUKK2JtYWxsb2NfdHJ5X2FsbG9jYXRl
X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVf
dCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9m
cm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAgICBibWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRo
X2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkpOworfQorCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2lubGluZShzaXplX3Qg
c2l6ZSkKIHsKICAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKApA
QCAtMTAwLDcgKzEyNSwxMyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxv
Y190CiAgICAgICAgIHNpemUpLmJlZ2luOwogfQogCi1QQVNfQVBJIHZvaWQqIGJtYWxsb2NfYWxs
b2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSk7CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29i
amVjdF93aXRoX3NpemUKK2JtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0dXJuX3Np
emVfaW5saW5lKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6
ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0X3plcm9fYWN0dWFsKAorICAgICAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVfaW1w
bChzaXplLCAxKSkpOworfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxv
Y19hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7CkBAIC0xMTEsMTIgKzE0MiwyOCBAQCBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hCiAgICAgcmV0dXJuIGJtYWxs
b2NfYWxsb2NhdGVfc2xvdyhzaXplKTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGlu
ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAg
IHJlc3VsdCA9IGJtYWxsb2NfYWxsb2NhdGVfaW1wbF9pbmxpbmVfb25seShzaXplLCAxKTsKKyAg
ICBpZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gcGFz
X29iamVjdF93aXRoX3NpemVfY3JlYXRlX2Zyb21fYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KTsK
KyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfc2xvdyhzaXplKTsK
K30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBibWFsbG9jX2FsbG9jYXRlX3dp
dGhfYWxpZ25tZW50X2lubGluZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKIHsKICAg
ICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXpl
LCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29i
amVjdF93aXRoX3NpemUKK2JtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfYW5kX3JldHVy
bl9zaXplX2lubGluZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKK3sKKyAgICByZXR1
cm4gcGFzX29iamVjdF93aXRoX3NpemVfY3JlYXRlX2Zyb21fYWxsb2NhdGlvbl9yZXN1bHQoCisg
ICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1l
bnQpKTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2Nh
dGVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKICAgICByZXR1cm4gKHZvaWQqKXBhc19h
bGxvY2F0aW9uX3Jlc3VsdF96ZXJvKApAQCAtMTI0LDYgKzE3MSwxMyBAQCBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hCiAgICAgICAgIHNpemUpLmJlZ2luOwogfQogCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxv
Y2F0ZV96ZXJvZWRfYW5kX3JldHVybl9zaXplX2lubGluZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBy
ZXR1cm4gcGFzX29iamVjdF93aXRoX3NpemVfY3JlYXRlX2Zyb21fYWxsb2NhdGlvbl9yZXN1bHQo
CisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvX2FjdHVhbCgKKyAgICAgICAgICAg
IGJtYWxsb2NfYWxsb2NhdGVfaW1wbChzaXplLCAxKSkpOworfQorCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCoKIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKHZvaWQqIG9sZF9w
dHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19y
ZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCkBAIC0xMzgsNiArMTkyLDIxIEBAIGJtYWxs
b2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKHZvaWQqIG9sZF8KICAgICAgICAgZnJlZV9tb2RlKS5i
ZWdpbjsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19vYmplY3Rfd2l0aF9zaXpl
CitibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUodm9pZCogb2xk
X3B0ciwgc2l6ZV90IG5ld19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCit7CisgICAg
cmV0dXJuIHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0
KAorICAgICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljKAorICAgICAgICAgICAgb2xk
X3B0ciwKKyAgICAgICAgICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKKyAgICAg
ICAgICAgIG5ld19zaXplLAorICAgICAgICAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKKyAgICAg
ICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCisgICAgICAgICAg
ICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAorICAgICAgICAgICAgZnJlZV9t
b2RlKSk7Cit9CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19yZWFs
bG9jYXRlX2lubGluZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCkBAIC0x
NTIsNiArMjIxLDIxIEBAIGJtYWxsb2NfcmVhbGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwK
ICAgICAgICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19vYmplY3Rfd2l0aF9zaXplCitibWFsbG9jX3JlYWxsb2NhdGVfYW5kX3JldHVybl9zaXpl
X2lubGluZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9t
b2RlKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxv
Y2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpYygKKyAg
ICAgICAgICAgIG9sZF9wdHIsCisgICAgICAgICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZl
X2hlYXAsCisgICAgICAgICAgICBuZXdfc2l6ZSwKKyAgICAgICAgICAgIEJNQUxMT0NfSEVBUF9D
T05GSUcsCisgICAgICAgICAgICBibWFsbG9jX2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCisg
ICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAorICAgICAgICAg
ICAgZnJlZV9tb2RlKSk7Cit9CisKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIGJtYWxs
b2NfdHJ5X2lzb19hbGxvY2F0ZV9pbXBsLAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCkBAIC0y
MjcsNiArMzExLDE0IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3QK
ICAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhl
YXBfcmVmLCBzaXplLCAxKS5iZWdpbjsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0
dXJuX3NpemVfaW5saW5lKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAor
ICAgIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVh
dGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVf
YXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpKTsKK30KKwogUEFTX0NSRUFURV9UUllf
QUxMT0NBVEVfUFJJTUlUSVZFKAogICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGws
CiAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKQEAgLTI0MCw2ICszMzIsMTQgQEAgc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYQogICAgIHJldHVybiAodm9pZCopYm1hbGxv
Y19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47CiB9CiAK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX2Fs
bG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAgIHBhc19wcmltaXRp
dmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBw
YXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAg
ICAgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkpOwor
fQorCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVf
YXV4aWxpYXJ5X3plcm9lZF9pbmxpbmUoCiAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVh
cF9yZWYsCiAgICAgc2l6ZV90IHNpemUpCkBAIC0yNDksNiArMzQ5LDE1IEBAIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3QKICAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfb2JqZWN0X3dpdGhfc2l6ZQorYm1hbGxvY190
cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9hbmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAg
IHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXplKQorewor
ICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jl
c3VsdCgKKyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm9fYWN0dWFsKGJtYWxsb2Nf
dHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKSkpOworfQorCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlf
emVyb2VkX2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplKQogewpAQCAtMjU3LDYgKzM2NiwxNCBAQCBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hCiAgICAgICAgIHNpemUpLmJlZ2luOwogfQogCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxv
Y2F0ZV9hdXhpbGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoCisgICAgcGFzX3By
aW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgc2l6ZV90IHNpemUpCit7CisgICAgcmV0
dXJuIHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAor
ICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVyb19hY3R1YWwoYm1hbGxvY19hbGxvY2F0
ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkpKTsKK30KKwogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQqCiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9h
bGlnbm1lbnRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6
ZSwKQEAgLTI2NSw2ICszODIsMTUgQEAgYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3dp
dGhfYWxpZwogICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5
X2ltcGwoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBwYXNfb2JqZWN0X3dpdGhfc2l6ZQorYm1hbGxvY190cnlfYWxsb2NhdGVf
YXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUocGFzX3ByaW1p
dGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIHBhc19vYmplY3Rfd2l0aF9z
aXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAgICBibWFsbG9jX3RyeV9h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KSk7Cit9CisK
IHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlh
cnlfd2l0aF9hbGlnbm1lbnRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVm
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBzaXplLApAQCAtMjczLDYgKzM5OSwxNSBAQCBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV93
aXRoX2FsaWdubWVuCiAgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFy
eV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCitzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUKK2JtYWxsb2NfYWxsb2NhdGVfYXV4
aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUocGFzX3ByaW1pdGl2
ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgYWxpZ25tZW50KQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVf
ZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlh
cnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KSk7Cit9CisKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUo
CiAgICAgdm9pZCogb2xkX3B0ciwKICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKQEAgLTI5MCw2ICs0MjUsMjQgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJt
YWxsb2NfdAogICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9hdXhp
bGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZSgKKyAgICB2b2lkKiBvbGRfcHRyLAorICAgIHBh
c19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAg
ICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBwYXNf
b2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAg
cGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSgKKyAgICAgICAgICAgIG9sZF9wdHIsCisgICAg
ICAgICAgICBoZWFwX3JlZiwKKyAgICAgICAgICAgIG5ld19zaXplLAorICAgICAgICAgICAgQk1B
TExPQ19IRUFQX0NPTkZJRywKKyAgICAgICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGls
aWFyeV9pbXBsX2Zvcl9yZWFsbG9jLAorICAgICAgICAgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1
bnRpbWVfY29uZmlnLmJhc2UsCisgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFw
X3RlbGVwb3J0LAorICAgICAgICAgICAgZnJlZV9tb2RlKSk7Cit9CisKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSh2b2lk
KiBvbGRfcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKQEAgLTMwNiw2ICs0NTksMjQgQEAgc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfcgogICAgICAgICBmcmVlX21vZGUpLmJlZ2lu
OwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUKK2Jt
YWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZSh2b2lkKiBv
bGRfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxv
Y2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhf
c2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgcGFzX3RyeV9yZWFs
bG9jYXRlX3ByaW1pdGl2ZSgKKyAgICAgICAgICAgIG9sZF9wdHIsCisgICAgICAgICAgICBoZWFw
X3JlZiwKKyAgICAgICAgICAgIG5ld19zaXplLAorICAgICAgICAgICAgQk1BTExPQ19IRUFQX0NP
TkZJRywKKyAgICAgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGxfZm9yX3Jl
YWxsb2MsCisgICAgICAgICAgICAmYm1hbGxvY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFz
ZSwKKyAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCisgICAg
ICAgICAgICBmcmVlX21vZGUpKTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQg
Ym1hbGxvY19kZWFsbG9jYXRlX2lubGluZSh2b2lkKiBwdHIpCiB7CiAgICAgcGFzX2RlYWxsb2Nh
dGUocHRyLCBCTUFMTE9DX0hFQVBfQ09ORklHKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsaWduZWRfYWxsb2NhdGlv
bl9yZXN1bHQuaAkocmV2aXNpb24gMjgzNDU1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpA
QCAtNjMsOCArNjMsMTIgQEAgcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2Nh
dAogewogICAgIGlmICghcmVzdWx0LnJlc3VsdCkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwotICAgIAorCisgICAgLyogV2Ugc2F5IHRoYXQg
dGhlIGFjdHVhbF9zaXplIGlzIHRoZSByZXN1bHRfc2l6ZSBiZWNhdXNlIHRoZSB0eXBpY2FsIHVz
ZSBjYXNlIGZvciBhbgorICAgICAgIGFsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQgaXMgdGhhdCB0
aGUgbGVmdC9yaWdodCBwYWRkaW5nIGlzIHJldHVybmVkIGJhY2sgdG8gdGhlCisgICAgICAgYWxs
b2NhdG9yLiAqLwogICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nl
c3Nfd2l0aF96ZXJvX21vZGUoKHVpbnRwdHJfdClyZXN1bHQucmVzdWx0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
LnJlc3VsdF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lnplcm9fbW9kZSk7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9u
X3Jlc3VsdC5oCShyZXZpc2lvbiAyODM0NTUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzCiAgICBvbiB0
aGUgYWxsb2NhdGlvbiBmYXN0IHBhdGggd29yay4gKi8KIHN0cnVjdCBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgewogICAgIHVpbnRwdHJfdCBiZWdpbjsKKyAgICBzaXplX3QgYWN0dWFsX3NpemU7CiAg
ICAgYm9vbCBkaWRfc3VjY2VlZDsKICAgICBwYXNfemVyb19tb2RlIHplcm9fbW9kZTsKIH07CkBA
IC01MiwyNCArNTMsMjggQEAgc3RhdGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFz
XwogICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGZhbHNlOwogICAgIHJlc3VsdC56ZXJvX21vZGUg
PSBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvOwogICAgIHJlc3VsdC5iZWdpbiA9IDA7
CisgICAgcmVzdWx0LmFjdHVhbF9zaXplID0gMDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBz
dGF0aWMgaW5saW5lIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyZWF0ZV9zdWNjZXNzX3dpdGhfemVyb19tb2RlKHVpbnRwdHJfdCBiZWdpbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWN0dWFs
X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3plcm9fbW9kZSB6ZXJvX21vZGUpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
IHJlc3VsdDsKICAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSB0cnVlOwogICAgIHJlc3VsdC56ZXJv
X21vZGUgPSB6ZXJvX21vZGU7CiAgICAgcmVzdWx0LmJlZ2luID0gYmVnaW47CisgICAgcmVzdWx0
LmFjdHVhbF9zaXplID0gYWN0dWFsX3NpemU7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3Rh
dGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Ny
ZWF0ZV9zdWNjZXNzKHVpbnRwdHJfdCBiZWdpbikKK3N0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRp
b25fcmVzdWx0IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzcyh1aW50cHRyX3Qg
YmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFjdHVhbF9zaXplKQogewogICAgIHJldHVy
biBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUoCi0g
ICAgICAgIGJlZ2luLCBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvKTsKKyAgICAgICAg
YmVnaW4sIGFjdHVhbF9zaXplLCBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvKTsKIH0K
IAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdApAQCAtNzgs
NiArODMsMTAgQEAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KHBhc19hbGxvYwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKKy8qIFdlaXJkIGFzIGl0IGlzLCBpdCBtYWtlcyBhIGxvdCBv
ZiBzZW5jZSBmb3IgdGhpcyB0byB0YWtlIHNpemUgYXMgYSBwYXJhbWV0ZXIgZXZlbiB0aG91Z2gg
dGhlCisgICByZXN1bHQgb2JqZWN0IGhhcyB0aGUgYWN0dWFsX3NpemUuIFJlYXNvbjogYWN0dWFs
X3NpemUgaXMgdGhlIHNpemUgdGhhdCB0aGUgYWxsb2NhdG9yIHZlbmRlZCwKKyAgIHdoaWxlIHRo
ZSBwYXNzZWQgc2l6ZSBpcyB0aGUgc2l6ZSB0aGUgdXNlciB3YW50ZWQuIFRoaXMgaXMgYWJvdXQg
emVyb2luZyB1cCB0byB0aGUgc2l6ZSB0aGF0CisgICB0aGUgdXNlciB3YW50ZWQuIEluIG1hbnkg
Y2FzZXMsIGFjdHVhbF9zaXplIGlzIHRvdGFsbHkgdW5pbnRlcmVzdGluZyB0byB0aGUgdXNlci4g
Ki8KIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKQEAgLTg2LDEyICs5NSwxOCBAQCBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfYWxsb2NhdGlvCiAgICAgICAgICYmIHJlc3Vs
dC56ZXJvX21vZGUgPT0gcGFzX3plcm9fbW9kZV9tYXlfaGF2ZV9ub25femVybykgewogICAgICAg
ICBwYXNfemVyb19tZW1vcnkoKHZvaWQqKXJlc3VsdC5iZWdpbiwgc2l6ZSk7CiAgICAgICAgIHJl
dHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUo
Ci0gICAgICAgICAgICByZXN1bHQuYmVnaW4sIHBhc196ZXJvX21vZGVfaXNfYWxsX3plcm8pOwor
ICAgICAgICAgICAgcmVzdWx0LmJlZ2luLCBzaXplLCBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJv
KTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm9fYWN0
dWFsKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCit7CisgICAgcmV0dXJuIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdF96ZXJvKHJlc3VsdCwgcmVzdWx0LmFjdHVhbF9zaXplKTsKK30KKworc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX2FsbG9jYXRp
b25fcmVzdWx0X3NldF9lcnJubyhwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQogewogICAg
IGlmICghcmVzdWx0LmRpZF9zdWNjZWVkKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGlu
ZXMuaAkocmV2aXNpb24gMjgzNDU1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQs
NyArMTk0LDcgQEAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19iaQogICAg
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coImJpdGZpdCBhbGxvY2F0aW9u
IHN1Y2NlZWRlZCB3aXRoICVwXG4iLCAodm9pZCopYml0Zml0X3Jlc3VsdC51LnJlc3VsdCk7CiAg
ICAgICAgIAotICAgICAgICByZXR1cm4gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9j
cmVhdGVfc3VjY2VzcyhiaXRmaXRfcmVzdWx0LnUucmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHBh
c19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoYml0Zml0X3Jlc3Vs
dC51LnJlc3VsdCwgc2l6ZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfZGVidWdfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWJ1Z19oZWFwLmgJKHJldmlzaW9uIDI4MzQ1NSkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWJ1Z19oZWFwLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsNyBAQCBzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdCBwYXNfCiAgICAgcmVzdWx0LmRpZF9zdWNjZWVkID0gISFyYXdfcmVzdWx0Owog
ICAgIHJlc3VsdC5iZWdpbiA9ICh1aW50cHRyX3QpcmF3X3Jlc3VsdDsKICAgICByZXN1bHQuemVy
b19tb2RlID0gcGFzX3plcm9fbW9kZV9tYXlfaGF2ZV9ub25femVybzsKKyAgICByZXN1bHQuYWN0
dWFsX3NpemUgPSByYXdfcmVzdWx0ID8gc2l6ZSA6IDA7CiAKICAgICByZXR1cm4gcmVzdWx0Owog
fQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfcGF0aF9h
bGxvY2F0aW9uX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaAkocmV2aXNpb24gMjgz
NDU1KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfcGF0aF9h
bGxvY2F0aW9uX3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDYgKzM3LDcgQEAgdHlwZWRlZiBz
dHJ1Y3QgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uXwogc3RydWN0IHBhc19mYXN0X3BhdGhfYWxs
b2NhdGlvbl9yZXN1bHQgewogICAgIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2lu
ZCBraW5kOwogICAgIHVpbnRwdHJfdCBiZWdpbjsKKyAgICBzaXplX3QgYWN0dWFsX3NpemU7CiB9
OwogCiBzdGF0aWMgaW5saW5lIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQKQEAgLTQ3
LDYgKzQ4LDcgQEAgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocAogICAg
ICAgICAgICAgICAgfHwga2luZCA9PSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X291
dF9vZl9tZW1vcnkpOwogICAgIHJlc3VsdC5raW5kID0ga2luZDsKICAgICByZXN1bHQuYmVnaW4g
PSAwOworICAgIHJlc3VsdC5hY3R1YWxfc2l6ZSA9IDA7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApAQCAtNjMsMTEgKzY1LDEyIEBAIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3Jl
YXRlX28KIH0KIAogc3RhdGljIGlubGluZSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0
Ci1wYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHVpbnRwdHJf
dCBiZWdpbikKK3Bhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Mo
dWludHB0cl90IGJlZ2luLCBzaXplX3QgYWN0dWFsX3NpemUpCiB7CiAgICAgcGFzX2Zhc3RfcGF0
aF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAgcmVzdWx0LmtpbmQgPSBwYXNfZmFzdF9w
YXRoX2FsbG9jYXRpb25fcmVzdWx0X3N1Y2Nlc3M7CiAgICAgcmVzdWx0LmJlZ2luID0gYmVnaW47
CisgICAgcmVzdWx0LmFjdHVhbF9zaXplID0gYWN0dWFsX3NpemU7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIApAQCAtODIsNiArODUsNyBAQCBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0
X2Zyb21fYWxsCiAgICAgICAgID8gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9zdWNj
ZXNzCiAgICAgICAgIDogZmFpbHVyZV9raW5kOwogICAgIHJlc3VsdC5iZWdpbiA9IGFsbG9jYXRp
b25fcmVzdWx0LmJlZ2luOworICAgIHJlc3VsdC5hY3R1YWxfc2l6ZSA9IGFsbG9jYXRpb25fcmVz
dWx0LmFjdHVhbF9zaXplOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTg5LDcgKzkzLDcg
QEAgc3RhdGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc19mYXN0X3BhdGhfYWxs
b2NhdGlvbl9yZXN1bHRfdG9fYWxsb2NhdGlvbl9yZXN1bHQocGFzX2Zhc3RfcGF0aF9hbGxvY2F0
aW9uX3Jlc3VsdCBmYXN0X3Jlc3VsdCkKIHsKICAgICBpZiAoZmFzdF9yZXN1bHQua2luZCA9PSBw
YXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X3N1Y2Nlc3MpCi0gICAgICAgIHJldHVybiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoZmFzdF9yZXN1bHQuYmVnaW4pOwor
ICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKGZhc3Rf
cmVzdWx0LmJlZ2luLCBmYXN0X3Jlc3VsdC5hY3R1YWxfc2l6ZSk7CiAgICAgcmV0dXJuIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogfQogCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2VuZXJpY19s
YXJnZV9mcmVlX2hlYXAuaAkocmV2aXNpb24gMjgzNDU1KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE4Nyw3ICsxODcsNyBAQCBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXBfdHJ5X2Fs
bG9jYXRlCiAgICAgICAgIHRlc3RfYWxsb2NhdGlvbl9jYW5kaWRhdGVfZGF0YTsKICAgICAKICAg
ICBpZiAoIXNpemUpCi0gICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUoMCwgcGFzX3plcm9fbW9kZV9pc19hbGxfemVybyk7Cisg
ICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96
ZXJvX21vZGUoMCwgMCwgcGFzX3plcm9fbW9kZV9pc19hbGxfemVybyk7CiAgICAgCiAgICAgaWYg
KFBBU19HRU5FUklDX0xBUkdFX0ZSRUVfSEVBUF9WRVJCT1NFID49IDIpCiAgICAgICAgIHByaW50
ZigiQWxsb2NhdGluZyBzaXplID0gJXp1XG4iLCBzaXplKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2lubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9pbmxpbmVz
LmgJKHJldmlzaW9uIDI4MzQ1NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sYXJnZV9mcmVlX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5Myw3
IEBAIHBhc19sYXJnZV9hbGxvY2F0aW9uX3Jlc3VsdF9hc19hbGxvY2F0aW8KIAogICAgIHJldHVy
biBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUoCiAg
ICAgICAgIHJlc3VsdC5hbGxvY2F0aW9uLmJlZ2luLAorICAgICAgICBwYXNfbGFyZ2VfZnJlZV9z
aXplKHJlc3VsdC5hbGxvY2F0aW9uKSwKICAgICAgICAgcmVzdWx0LmFsbG9jYXRpb24uemVyb19t
b2RlKTsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4
MzQ1NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxv
Y2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDksNyArNTQ5LDcgQEAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zZXRfdXBfcHJpbW9yZGlhbF9idQogCiAgICAgc3dpdGNoIChtb2RlKSB7
CiAgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByaW1vcmRpYWxfYnVtcF9yZXR1cm5fZmly
c3RfYWxsb2NhdGlvbjoKLSAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfc3VjY2VzcyhwYWdlX2JvdW5kYXJ5ICsgYmVnaW5fb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJu
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhwYWdlX2JvdW5kYXJ5ICsgYmVn
aW5fb2Zmc2V0LCBvYmplY3Rfc2l6ZSk7CiAKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cHJpbW9yZGlhbF9idW1wX3N0YXNoX3dob2xlX2FsbG9jYXRpb246CiAgICAgICAgIHJldHVybiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKQEAgLTE0MzAsNyArMTQzMCw3
IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3dpdGhfZnIKICAgICAgICAgICAg
ICh2b2lkKilyZXN1bHQpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHJlc3VsdCk7CisgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhyZXN1bHQsIGFsbG9jYXRvci0+b2JqZWN0X3NpemUpOwog
fQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CkBAIC0x
NDcyLDcgKzE0NzIsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVf
CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiUmV0dXJuaW5nIGJ1
bXAgYWxsb2NhdGlvbiAlcC5cbiIsICh2b2lkKilyZXN1bHQpOwogICAgICAgICAKLSAgICAgICAg
cmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhyZXN1bHQpOworICAg
ICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHJlc3VsdCwg
b2JqZWN0X3NpemUpOwogICAgIH0KIAogICAgIGlmIChjb25maWcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcuYmFzZS5pc19lbmFibGVkKSB7CkBAIC0xNzAyLDcgKzE3MDIsOCBAQCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfCiAgICAgICAgIH0KICAgICAKICAgICAgICAg
cmV0dXJuIHJlc3VsdF9maWx0ZXIoCi0gICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
Y3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUocmVzdWx0LmJlZ2luLCByZXN1bHQuemVyb19t
b2RlKSk7CisgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nf
d2l0aF96ZXJvX21vZGUoCisgICAgICAgICAgICAgICAgcmVzdWx0LmJlZ2luLCByZXN1bHQuYWN0
dWFsX3NpemUsIHJlc3VsdC56ZXJvX21vZGUpKTsKICAgICB9CiAKICAgICBwYXNfY29tcGlsZXJf
ZmVuY2UoKTsKQEAgLTE3NDcsNyArMTc0OCw4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2Fs
bG9jYXRlKHBhc19sb2MKICAgICAgICAgfQogICAgIAogICAgICAgICByZXR1cm4gcmVzdWx0X2Zp
bHRlcigKLSAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193
aXRoX3plcm9fbW9kZShyZXN1bHQuYmVnaW4sIHJlc3VsdC56ZXJvX21vZGUpKTsKKyAgICAgICAg
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3plcm9fbW9kZSgK
KyAgICAgICAgICAgICAgICByZXN1bHQuYmVnaW4sIHJlc3VsdC5hY3R1YWxfc2l6ZSwgcmVzdWx0
Lnplcm9fbW9kZSkpOwogICAgIH0KIAogICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX2RlYnVnX2hl
YXBfaXNfZW5hYmxlZChjb25maWcua2luZCkpKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX29iamVjdF93aXRoX3NpemUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfb2JqZWN0X3dpdGhfc2l6ZS5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19vYmplY3Rfd2l0
aF9zaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19PQkpFQ1RfV0lUSF9T
SVpFX0gKKyNkZWZpbmUgUEFTX09CSkVDVF9XSVRIX1NJWkVfSAorCisjaW5jbHVkZSAicGFzX2Fs
bG9jYXRpb25fcmVzdWx0LmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19v
YmplY3Rfd2l0aF9zaXplOwordHlwZWRlZiBzdHJ1Y3QgcGFzX29iamVjdF93aXRoX3NpemUgcGFz
X29iamVjdF93aXRoX3NpemU7CisKKy8qIFRoaXMgaXMgYSBsaWdodHdlaWdodCB2ZXJzaW9uIG9m
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCB0aGF0IGl0J3MgcmVhc29uYWJsZSB0byByZXR1cm4gZnJv
bQorICAgZnVuY3Rpb25zIHNpbmNlIGl0IHF1YWxpZmllcyBmb3IgcmVnaXN0ZXItYWxsb2NhdGVk
IHJldHVybi4gKi8KK3N0cnVjdCBwYXNfb2JqZWN0X3dpdGhfc2l6ZSB7CisgICAgdm9pZCogb2Jq
ZWN0OworICAgIHNpemVfdCBzaXplOworfTsKKworc3RhdGljIGlubGluZSBwYXNfb2JqZWN0X3dp
dGhfc2l6ZSBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZW1wdHkodm9pZCkKK3sKKyAgICBw
YXNfb2JqZWN0X3dpdGhfc2l6ZSByZXN1bHQ7CisgICAgcmVzdWx0Lm9iamVjdCA9IE5VTEw7Cisg
ICAgcmVzdWx0LnNpemUgPSAwOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxp
bmUgcGFzX29iamVjdF93aXRoX3NpemUgcGFzX29iamVjdF93aXRoX3NpemVfY3JlYXRlKHZvaWQq
IG9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQoreworICAgIHBhc19vYmplY3Rfd2l0aF9zaXpl
IHJlc3VsdDsKKyAgICByZXN1bHQub2JqZWN0ID0gb2JqZWN0OworICAgIHJlc3VsdC5zaXplID0g
c2l6ZTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgaW5saW5lIHBhc19vYmplY3Rf
d2l0aF9zaXplIHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVz
dWx0KAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBhbGxvY2F0aW9uX3Jlc3VsdCkKK3sKKyAg
ICBwYXNfb2JqZWN0X3dpdGhfc2l6ZSByZXN1bHQ7CisgICAgcmVzdWx0Lm9iamVjdCA9ICh2b2lk
KilhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbjsKKyAgICByZXN1bHQuc2l6ZSA9IGFsbG9jYXRpb25f
cmVzdWx0LmFjdHVhbF9zaXplOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1BBU19FTkRfRVhU
RVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfT0JKRUNUX1dJVEhfU0laRSAqLworCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5o
CShyZXZpc2lvbiAyODM0NTUpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw4ICsxMDMsOCBAQCBwYXNf
dHJ5X2FsbG9jYXRlX2ltcGwocGFzX2hlYXBfcmVmKiBoZWFwCiAgICAgICAgICAgICAgICAgJnNp
emVfdGh1bmtfZGF0YSwgMSk7CiAKICAgICAgICAgICAgIHR5cGUgPSBoZWFwX3JlZi0+dHlwZTsK
LSAgICAgICAgICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dp
dGhfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAotICAgICAgICAgICAgICAgIHJlc3VsdCwg
dHlwZSwgY29uZmlnLmdldF90eXBlX3NpemUodHlwZSkpOworICAgICAgICAgICAgcmV0dXJuIHBh
c190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUoCisgICAgICAgICAgICAgICAgdHlwZSwg
cmVzdWx0LCBjb25maWcuZ2V0X3R5cGVfc2l6ZSh0eXBlKSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAodmVyYm9zZSkKQEAgLTExNyw5ICsxMTcsMTAgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbXBs
KHBhc19oZWFwX3JlZiogaGVhcAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJB
bGxvY2F0aW5nIHRoZSBzbG93IHdheS5cbiIpOwogCi0gICAgcmVzdWx0ID0gcGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgK
KyAgICByZXN1bHQgPSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKAorICAgICAg
ICB0eXBlLAogICAgICAgICB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3coaGVhcF9yZWYsIDEsIHR5
cGVfc2l6ZSwgMSksCi0gICAgICAgIHR5cGUsIHR5cGVfc2l6ZSk7CisgICAgICAgIHR5cGVfc2l6
ZSk7CiAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygicmVzdWx0LnB0ciA9ICVw
LCByZXN1bHQuZGlkX3N1Y2NlZWQgPSAlZFxuIiwgcmVzdWx0LnB0ciwgcmVzdWx0LmRpZF9zdWNj
ZWVkKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGVfYXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgJKHJldmlzaW9uIDI4MzQ1NSkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAkod29y
a2luZyBjb3B5KQpAQCAtMTE0LDkgKzExNCwxMCBAQCBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5X2lt
cGwocGFzX2hlYXBfcmVmCiAgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0
b3JfYWxpZ25tZW50KChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3IuYWxsb2NhdG9yKSkK
ICAgICAgICAgYWxsb2NhdG9yLmRpZF9zdWNjZWVkID0gZmFsc2U7CiAgICAgCi0gICAgcmV0dXJu
IHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQoCisgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGUoCisgICAgICAgIHR5cGUsCiAgICAgICAgIHRyeV9hbGxvY2F0ZV9jb21tb24oaGVhcF9yZWYs
IGFsaWduZWRfY291bnQsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBhbGxvY2F0b3IpLAotICAg
ICAgICB0eXBlLCBhbGlnbmVkX3NpemUpOworICAgICAgICBhbGlnbmVkX3NpemUpOwogfQogCiAj
ZGVmaW5lIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKG5hbWUsIGhlYXBfY29uZmlnLCBy
dW50aW1lX2NvbmZpZywgYWxsb2NhdG9yX2NvdW50cywgcmVzdWx0X2ZpbHRlcikgXApJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFs
bG9jYXRlLmgJKHJldmlzaW9uIDI4MzQ1NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODIsOSArMzgy
LDkgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9jYQogICAgIAogICAg
IGRhdGEgPSAocGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19hbGxvY2F0ZV9kYXRhKilhcmc7
CiAgICAgCi0gICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0
aF9pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCi0gICAgICAgIGRhdGEtPnRyeV9hbGxvY2F0
ZV9pbnRyaW5zaWMobmV3X2NvdW50KSwKKyAgICByZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0X2NyZWF0ZSgKICAgICAgICAgTlVMTCwKKyAgICAgICAgZGF0YS0+dHJ5X2FsbG9jYXRl
X2ludHJpbnNpYyhuZXdfY291bnQpLAogICAgICAgICBuZXdfY291bnQpOwogfQogCkBAIC00MDIs
NyArNDAyLDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpYygKICAgICAKICAgICBkYXRh
LnRyeV9hbGxvY2F0ZV9pbnRyaW5zaWMgPSB0cnlfYWxsb2NhdGVfaW50cmluc2ljOwogICAgIAot
ICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0KAorICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNf
YWxsb2NhdGlvbl9yZXN1bHQoCiAgICAgICAgIHBhc190cnlfcmVhbGxvY2F0ZSgKICAgICAgICAg
ICAgIG9sZF9wdHIsCiAgICAgICAgICAgICBoZWFwLApAQCAtNTQxLDkgKzU0MSw5IEBAIHBhc190
cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmVfYWxsb2NhdGVfY2EKICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgcGFzX2xvZygiaW4gcmVhbGxvYyAtIHJlc3VsdC5iZWdpbiA9ICVwXG4iLCAodm9pZCop
cmVzdWx0LmJlZ2luKTsKICAgICAKLSAgICByZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVz
dWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKLSAgICAgICAgcmVz
dWx0LAorICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKAogICAg
ICAgICBOVUxMLAorICAgICAgICByZXN1bHQsCiAgICAgICAgIG5ld19jb3VudCk7CiB9CiAKQEAg
LTU2Myw3ICs1NjMsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgIGRhdGEu
aGVhcF9yZWYgPSBoZWFwX3JlZjsKICAgICBkYXRhLnRyeV9hbGxvY2F0ZV9wcmltaXRpdmUgPSB0
cnlfYWxsb2NhdGVfcHJpbWl0aXZlOwogICAgIAotICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2Nh
dGlvbl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAorICAgIHJldHVybiBw
YXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2NhdGlvbl9yZXN1bHQoCiAgICAgICAg
IHBhc190cnlfcmVhbGxvY2F0ZSgKICAgICAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICAgICBw
YXNfZW5zdXJlX2hlYXAoJmhlYXBfcmVmLT5iYXNlLApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0LmgJKHJldmlzaW9uIDI4MzQ1NSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcg
KzM3LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdQogc3RydWN0
IHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCB7CiAgICAgcGFzX2hlYXBfdHlwZSogdHlwZTsK
ICAgICB2b2lkKiBwdHI7Ci0gICAgc2l6ZV90IHNpemU7CisgICAgc2l6ZV90IHNpemU7IC8qIFRo
ZSBzaXplIHRoYXQgdGhlIHVzZXIgd2FudGVkLiAqLworICAgIHNpemVfdCBhY3R1YWxfc2l6ZTsg
LyogVGhlIHNpemUgdGhhdCB0aGUgYWxsb2NhdG9yIHZlbmRlZCAoYXQgbGVhc3QgYXMgYmlnIGFz
IHdoYXQgdGhlIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRlZCkuICovCiAg
ICAgYm9vbCBkaWRfc3VjY2VlZDsKICAgICBwYXNfemVyb19tb2RlIHplcm9fbW9kZTsKIH07CkBA
IC00OCw2ICs1MCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2MK
ICAgICByZXN1bHQudHlwZSA9IE5VTEw7CiAgICAgcmVzdWx0LnB0ciA9IE5VTEw7CiAgICAgcmVz
dWx0LnNpemUgPSAwOworICAgIHJlc3VsdC5hY3R1YWxfc2l6ZSA9IDA7CiAgICAgcmVzdWx0LmRp
ZF9zdWNjZWVkID0gZmFsc2U7CiAgICAgcmVzdWx0Lnplcm9fbW9kZSA9IHBhc196ZXJvX21vZGVf
bWF5X2hhdmVfbm9uX3plcm87CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTY2LDM0ICs2OSwyNCBA
QCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKHBhc19oCiAgICAgcmVzdWx0LnR5
cGUgPSB0eXBlOwogICAgIHJlc3VsdC5wdHIgPSAodm9pZCopYWxsb2NhdGlvbl9yZXN1bHQuYmVn
aW47CiAgICAgcmVzdWx0LnNpemUgPSBzaXplOworICAgIHJlc3VsdC5hY3R1YWxfc2l6ZSA9IGFs
bG9jYXRpb25fcmVzdWx0LmFjdHVhbF9zaXplOwogICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGFs
bG9jYXRpb25fcmVzdWx0LmRpZF9zdWNjZWVkOwogICAgIHJlc3VsdC56ZXJvX21vZGUgPSBhbGxv
Y2F0aW9uX3Jlc3VsdC56ZXJvX21vZGU7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocmVzdWx0
LmFjdHVhbF9zaXplID49IHJlc3VsdC5zaXplKTsKKyAgICAKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNf
dHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAot
ICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCBpbnRlcm5hbF9yZXN1bHQpCitwYXNfdHlw
ZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2NhdGlvbl9yZXN1bHQoCisgICAgcGFzX3R5cGVk
X2FsbG9jYXRpb25fcmVzdWx0IHR5cGVkX3Jlc3VsdCkKIHsKICAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5iZWdpbiA9ICh1aW50cHRyX3QpaW50ZXJuYWxfcmVz
dWx0LnB0cjsKLSAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSBpbnRlcm5hbF9yZXN1bHQuZGlkX3N1
Y2NlZWQ7Ci0gICAgcmVzdWx0Lnplcm9fbW9kZSA9IGludGVybmFsX3Jlc3VsdC56ZXJvX21vZGU7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190
eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0
ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKLSAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgaW50cmluc2ljX3Jlc3VsdCwKLSAgICBwYXNfaGVhcF90eXBlKiB0eXBlLAotICAgIHNp
emVfdCBzaXplKQotewotICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7Ci0g
ICAgcmVzdWx0LnR5cGUgPSB0eXBlOwotICAgIHJlc3VsdC5wdHIgPSAodm9pZCopaW50cmluc2lj
X3Jlc3VsdC5iZWdpbjsKLSAgICByZXN1bHQuc2l6ZSA9IHNpemU7Ci0gICAgcmVzdWx0LmRpZF9z
dWNjZWVkID0gaW50cmluc2ljX3Jlc3VsdC5kaWRfc3VjY2VlZDsKLSAgICByZXN1bHQuemVyb19t
b2RlID0gaW50cmluc2ljX3Jlc3VsdC56ZXJvX21vZGU7CisgICAgcmVzdWx0LmJlZ2luID0gKHVp
bnRwdHJfdCl0eXBlZF9yZXN1bHQucHRyOworICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IHR5cGVk
X3Jlc3VsdC5kaWRfc3VjY2VlZDsKKyAgICByZXN1bHQuemVyb19tb2RlID0gdHlwZWRfcmVzdWx0
Lnplcm9fbW9kZTsKKyAgICByZXN1bHQuYWN0dWFsX3NpemUgPSB0eXBlZF9yZXN1bHQuYWN0dWFs
X3NpemU7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTAxLDcgKzk0LDcgQEAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvYwogcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0X3plcm8ocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKIHsKICAgICBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKLSAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpLAorICAgICAgICBw
YXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KSwK
ICAgICAgICAgcmVzdWx0LnNpemUpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTAsNyAr
MTAzLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvYwogcGFzX3R5
cGVkX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyhwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1
bHQgcmVzdWx0KQogewogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8oCi0gICAg
ICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHQocmVzdWx0KSk7CisgICAgICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19h
bGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0x
MTgsNyArMTExLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvYwog
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKHBhc190eXBlZF9hbGxv
Y2F0aW9uX3Jlc3VsdCByZXN1bHQpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNo
X29uX2Vycm9yKAotICAgICAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCkpOworICAgICAgICBwYXNfdHlwZWRfYWxsb2Nh
dGlvbl9yZXN1bHRfYXNfYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KSk7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBD
aGFvc1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rl
c3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCShyZXZpc2lvbiAyODM0NTUpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04Myw2ICs4MywxMyBAQCB2b2lkKiBnaWdhY2FnZUFsbG9jYXRlKHNpemVfdCBzaXplKQog
ewogICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeSgmZ2lnYWNhZ2VIZWFwUmVm
LCBzaXplKTsKIH0KKwordm9pZCogYm1hbGxvY0FsbG9jYXRlQW5kUmV0dXJuU2l6ZUFuZEFzc2Vy
dFNpemUoc2l6ZV90IHNpemUpCit7CisgICAgcGFzX29iamVjdF93aXRoX3NpemUgcmVzdWx0ID0g
Ym1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemUoc2l6ZSk7CisgICAgQ0hFQ0socmVzdWx0
LnNpemUgPj0gc2l6ZSk7CisgICAgcmV0dXJuIHJlc3VsdC5vYmplY3Q7Cit9CiAjZW5kaWYgLy8g
UEFTX0VOQUJMRV9CTUFMTE9DCiAKIHZvaWQgZmx1c2hEZWFsbG9jYXRpb25Mb2dBbmRTdG9wQWxs
b2NhdG9ycygpCkBAIC0xMDc0LDYgKzEwODEsMjIgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0
cygpCiAKICAgICB7CiAgICAgICAgIFRlc3RTY29wZSBpc28oCisgICAgICAgICAgICAiYm1hbGxv
Yy1hbmQtcmV0dXJuLXNpemUiLAorICAgICAgICAgICAgW10gKCkgeworICAgICAgICAgICAgICAg
IHNlbGVjdGVkSGVhcENvbmZpZyA9ICZibWFsbG9jX2hlYXBfY29uZmlnOworICAgICAgICAgICAg
ICAgIHNlbGVjdGVkQWxsb2NhdGVDb21tb25QcmltaXRpdmUgPSBibWFsbG9jQWxsb2NhdGVBbmRS
ZXR1cm5TaXplQW5kQXNzZXJ0U2l6ZTsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRl
ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlQXJyYXkgPSBudWxs
cHRyOworICAgICAgICAgICAgICAgIHNlbGVjdGVkRGVhbGxvY2F0ZSA9IGJtYWxsb2NfZGVhbGxv
Y2F0ZTsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZENvbW1vblByaW1pdGl2ZUhlYXAgPSAmYm1h
bGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXA7CisgICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFw
UmVmR2V0SGVhcCA9IG51bGxwdHI7CisgICAgICAgICAgICB9KTsKKyAgICAKKyAgICAgICAgQURE
X1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAwLCAxMDAwLCA1MDAwMDAsIHNvbWV0aW1lc1Nt
YWxsU29tZXRpbWVzQmlnLCAxMDAwMDAwMCwgZmFsc2UpKTsKKyAgICB9CisKKyAgICB7CisgICAg
ICAgIFRlc3RTY29wZSBpc28oCiAgICAgICAgICAgICAiYm1hbGxvYy1naWdhY2FnZSIsCiAgICAg
ICAgICAgICBbXSAoKSB7CiAgICAgICAgICAgICAgICAgZ2lnYWNhZ2VIZWFwUmVmID0gQk1BTExP
Q19BVVhJTElBUllfSEVBUF9SRUZfSU5JVElBTElaRVI7Cg==
</data>
<flag name="commit-queue"
          id="463848"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440719</attachid>
            <date>2021-10-09 15:25:55 -0700</date>
            <delta_ts>2021-10-09 20:07:14 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>85479</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODM4MTMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTEwLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU3VwcG9ydCB2YXJpYW50IG9mIG1hbGxv
YyB0aGF0IHJldHVybnMgdGhlIGFjdHVhbCBzaXplIGFuZCB1c2UgdGhhdCBpbiBXVEY6OlZlY3Rv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTUx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhyZWFk
IHRoZSBsaWJwYXMgbWFsbG9jQW5kUmV0dXJuU2l6ZS1zdHlsZSBBUElzIHRocm91Z2ggRmFzdE1h
bGxvYyBhbmQgdXNlIHRoZW0gaW4gVmVjdG9yLgorCisgICAgICAgIEkgd2FzIGhvcGluZyB0aGF0
IHRoaXMgd291bGQgYmUgYSBzcGVlZC11cCwgYnV0IGl0J3Mgbm90LCBhdCBsZWFzdCBub3QgcmVs
aWFibHkuIE9uIG9uZSBtYWNoaW5lLCBJCisgICAgICAgIHNhdyBhIDAuOCUgSmV0U3RyZWFtMiBz
cGVlZC11cCBkdWUgdG8gdHNmLXdhc20gZ2V0dGluZyBhIGxvdCBmYXN0ZXIuIEhvd2V2ZXIsIGl0
IGRvZXMgc2VlbSBsaWtlIGEKKyAgICAgICAgcmVsaWFibGUgMC41JSBSQU1pZmljYXRpb24gaW1w
cm92ZW1lbnQuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChXVEY6OnRyeUZhc3RaZXJvZWRN
YWxsb2NJbXBsKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdE1hbGxvY0ltcGwpOgorICAgICAgICAo
V1RGOjp0cnlGYXN0TWFsbG9jQW5kUmV0dXJuU2l6ZSk6CisgICAgICAgIChXVEY6OmZhc3RNYWxs
b2NBbmRSZXR1cm5TaXplKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdENhbGxvY0ltcGwpOgorICAg
ICAgICAoV1RGOjpmYXN0UmVhbGxvY0FuZFJldHVyblNpemUpOgorICAgICAgICAoV1RGOjp0cnlG
YXN0UmVhbGxvY0ltcGwpOgorICAgICAgICAoV1RGOjp0cnlGYXN0WmVyb2VkTWFsbG9jKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6IERlbGV0ZWQuCisgICAgICAgIChX
VEY6OnRyeUZhc3RDYWxsb2MpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjp0cnlGYXN0UmVhbGxv
Yyk6IERlbGV0ZWQuCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuaDoKKyAgICAgICAgKFdURjo6
dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZhc3RaZXJvZWRNYWxsb2MpOgorICAg
ICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2Mp
OgorICAgICAgICAoV1RGOjpGYXN0TWFsbG9jOjptYWxsb2NBbmRSZXR1cm5TaXplKToKKyAgICAg
ICAgKFdURjo6RmFzdE1hbGxvYzo6dHJ5TWFsbG9jKToKKyAgICAgICAgKFdURjo6RmFzdE1hbGxv
Yzo6dHJ5TWFsbG9jQW5kUmV0dXJuU2l6ZSk6CisgICAgICAgIChXVEY6OkZhc3RNYWxsb2M6OnJl
YWxsb2NBbmRSZXR1cm5TaXplKToKKyAgICAgICAgKiB3dGYvT2JqZWN0QW5kU2l6ZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdURjo6T2JqZWN0QW5kU2l6ZTo6T2JqZWN0QW5kU2l6ZSk6CisgICAgICAg
IChXVEY6Ok9iamVjdEFuZFNpemU6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHd0
Zi9WZWN0b3IuaDoKKyAgICAgICAgKFdURjo6VmVjdG9yQnVmZmVyQmFzZTo6YWxsb2NhdGVCdWZm
ZXIpOgorICAgICAgICAoV1RGOjpWZWN0b3JCdWZmZXJCYXNlOjpyZWFsbG9jYXRlQnVmZmVyKToK
KwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25FbmFibGVkKCkgY2FuJ3Qg
cmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcwpJbmRl
eDogU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyODM4
MTMpCisrKyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzUsNiArMjM1LDcgQEAKIAkJMEY0NTcwNDIxQkU1QjU4RjAwNjJBNjI5IC8q
IERvbWluYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9taW5hdG9y
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ1NzA0NDFCRTgzNDQxMDA2MkE2
MjkgLyogQnViYmxlU29ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdWJi
bGVTb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNEQ4QzcxMUZDMUU3Q0Uw
MDFEMzJBQyAvKiBTaW5nbHlMaW5rZWRMaXN0V2l0aFRhaWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2luZ2x5TGlua2VkTGlzdFdpdGhUYWlsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNTIxMkVBMjcwQTRCQzIwMDM0RTFFRCAvKiBPYmplY3RBbmRTaXpl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE9iamVjdEFuZFNpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY1QkYxNjUxRjIzMTc4MzAwMjlEOTFEIC8qIE5hdHVyYWxMb29wcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOYXR1cmFsTG9vcHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY1QkYxNzQxRjIzRDQ5QTAwMjlEOTFEIC8qIEdpZ2FjYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdpZ2FjYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1QkYxNzUx
RjIzRDQ5QTAwMjlEOTFEIC8qIEdpZ2FjYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdpZ2FjYWdlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk2LDYgKzExOTcsNyBAQAogCQkJCUE4
QTQ3MkQ1MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLywKIAkJCQlBOEE0
NzJENjE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5oICovLAogCQkJCTdFMjlDMzNE
MTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpDUnVudGltZUV4dHJhcy5oICovLAorCQkJCTBGNTIxMkVB
MjcwQTRCQzIwMDM0RTFFRCAvKiBPYmplY3RBbmRTaXplLmggKi8sCiAJCQkJODM0OEJBMEQyMUZC
QzBENDAwRkQzMDU0IC8qIE9iamVjdElkZW50aWZpZXIuY3BwICovLAogCQkJCTgzQThBQzNEMUZB
QkJFOTQwMDIwNjRBQyAvKiBPYmplY3RJZGVudGlmaWVyLmggKi8sCiAJCQkJQ0Q0OEE4NzAyNEM4
QTIxNjAwRjU4MDBDIC8qIE9ic2VydmVyLmggKi8sCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9GYXN0
TWFsbG9jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAko
cmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkKiBmYXN0TWVtRHVwKGNvbnN0IHZvaWQq
IG1lbSwgc2l6ZV90CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotVHJ5TWFsbG9jUmV0dXJuVmFs
dWUgdHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplX3QgbikgCit2b2lkKiB0cnlGYXN0WmVyb2VkTWFs
bG9jSW1wbChzaXplX3QgbikgCiB7CiAgICAgdm9pZCogcmVzdWx0OwogICAgIGlmICghdHJ5RmFz
dE1hbGxvYyhuKS5nZXRWYWx1ZShyZXN1bHQpKQpAQCAtMjE4LDEzICsyMTgsMTggQEAgdm9pZCBm
YXN0QWxpZ25lZEZyZWUodm9pZCogcCkgCiAKICNlbmRpZiAvLyBPUyhXSU5ET1dTKQogCi1UcnlN
YWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0TWFsbG9jKHNpemVfdCBuKSAKK3ZvaWQqIHRyeUZhc3RN
YWxsb2NJbXBsKHNpemVfdCBuKSAKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQobik7CiAg
ICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxsb2NSZXN0
cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBtYWxsb2Mobik7CiB9CiAKK09iamVjdEFu
ZFNpemUgdHJ5RmFzdE1hbGxvY0FuZFJldHVyblNpemUoc2l6ZV90IG4pIAoreworICAgIHJldHVy
biBPYmplY3RBbmRTaXplKHRyeUZhc3RNYWxsb2NJbXBsKG4pLCBuKTsKK30KKwogdm9pZCogZmFz
dE1hbGxvYyhzaXplX3QgbikgCiB7CiAgICAgQVNTRVJUX0lTX1dJVEhJTl9MSU1JVChuKTsKQEAg
LTIzNiw3ICsyNDEsMTIgQEAgdm9pZCogZmFzdE1hbGxvYyhzaXplX3QgbikgCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXplX3Qg
bl9lbGVtZW50cywgc2l6ZV90IGVsZW1lbnRfc2l6ZSkKK09iamVjdEFuZFNpemUgZmFzdE1hbGxv
Y0FuZFJldHVyblNpemUoc2l6ZV90IG4pCit7CisgICAgcmV0dXJuIE9iamVjdEFuZFNpemUoZmFz
dE1hbGxvYyhuKSwgbik7Cit9CisKK3ZvaWQqIHRyeUZhc3RDYWxsb2NJbXBsKHNpemVfdCBuX2Vs
ZW1lbnRzLCBzaXplX3QgZWxlbWVudF9zaXplKQogewogICAgIEZBSUxfSUZfRVhDRUVEU19MSU1J
VChuX2VsZW1lbnRzICogZWxlbWVudF9zaXplKTsKICAgICBBU1NFUlQoIWZvcmJpZE1hbGxvY1Vz
ZVNjb3BlQ291bnQgfHwgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uU2NvcGVDb3VudCk7CkBAIC0y
NjksNyArMjc5LDEyIEBAIHZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLVRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RSZWFsbG9j
KHZvaWQqIHAsIHNpemVfdCBuKQorT2JqZWN0QW5kU2l6ZSBmYXN0UmVhbGxvY0FuZFJldHVyblNp
emUodm9pZCogcCwgc2l6ZV90IG4pCit7CisgICAgcmV0dXJuIE9iamVjdEFuZFNpemUoZmFzdFJl
YWxsb2MocCwgbiksIG4pOworfQorCit2b2lkKiB0cnlGYXN0UmVhbGxvY0ltcGwodm9pZCogcCwg
c2l6ZV90IG4pCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG4pOwogICAgIEFTU0VSVCgh
Zm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29w
ZUNvdW50KTsKQEAgLTUzMCw2ICs1NDUsMTkgQEAgdm9pZCogZmFzdE1hbGxvYyhzaXplX3Qgc2l6
ZSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitPYmplY3RBbmRTaXplIGZhc3RNYWxsb2NBbmRS
ZXR1cm5TaXplKHNpemVfdCBzaXplKQoreworICAgIEFTU0VSVF9JU19XSVRISU5fTElNSVQoc2l6
ZSk7CisgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxs
b2NSZXN0cmljdGlvblNjb3BlQ291bnQpOworICAgIE9iamVjdEFuZFNpemUgcmVzdWx0ID0gYm1h
bGxvYzo6YXBpOjptYWxsb2NBbmRSZXR1cm5TaXplKHNpemUpOworICAgIEFTU0VSVChyZXN1bHQu
c2l6ZSA+PSBzaXplKTsKKyNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKSAmJiBUUkFD
S19NQUxMT0NfQ0FMTFNUQUNLCisgICAgaWYgKCFBdm9pZFJlY29yZGluZ1Njb3BlOjphdm9pZFJl
Y29yZGluZ0NvdW50KCkpCisgICAgICAgIE1hbGxvY0NhbGxUcmFja2VyOjpzaW5nbGV0b24oKS5y
ZWNvcmRNYWxsb2MocmVzdWx0Lm9iamVjdCwgcmVzdWx0LnNpemUpOworI2VuZGlmCisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwogdm9pZCogZmFzdENhbGxvYyhzaXplX3QgbnVtRWxlbWVudHMsIHNp
emVfdCBlbGVtZW50U2l6ZSkKIHsKICAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKG51bUVsZW1l
bnRzICogZWxlbWVudFNpemUpOwpAQCAtNTUzLDYgKzU4MSwxOSBAQCB2b2lkKiBmYXN0UmVhbGxv
Yyh2b2lkKiBvYmplY3QsIHNpemVfdCBzCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorT2JqZWN0
QW5kU2l6ZSBmYXN0UmVhbGxvY0FuZFJldHVyblNpemUodm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6
ZSkKK3sKKyAgICBBU1NFUlRfSVNfV0lUSElOX0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9y
YmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNv
dW50KTsKKyAgICBPYmplY3RBbmRTaXplIHJlc3VsdCA9IGJtYWxsb2M6OmFwaTo6cmVhbGxvY0Fu
ZFJldHVyblNpemUob2JqZWN0LCBzaXplKTsKKyAgICBBU1NFUlQocmVzdWx0LnNpemUgPj0gc2l6
ZSk7CisjaWYgRU5BQkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikgJiYgVFJBQ0tfTUFMTE9DX0NB
TExTVEFDSworICAgIGlmICghQXZvaWRSZWNvcmRpbmdTY29wZTo6YXZvaWRSZWNvcmRpbmdDb3Vu
dCgpKQorICAgICAgICBNYWxsb2NDYWxsVHJhY2tlcjo6c2luZ2xldG9uKCkucmVjb3JkUmVhbGxv
YyhvYmplY3QsIHJlc3VsdC5vYmplY3QsIHJlc3VsdC5zaXplKTsKKyNlbmRpZgorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKIHZvaWQgZmFzdEZyZWUodm9pZCogb2JqZWN0KQogewogICAgIGJtYWxs
b2M6OmFwaTo6ZnJlZShvYmplY3QpOwpAQCAtNjA0LDI0ICs2NDUsMzMgQEAgdm9pZCBmYXN0QWxp
Z25lZEZyZWUodm9pZCogcCkKICAgICBibWFsbG9jOjphcGk6OmZyZWUocCk7CiB9CiAKLVRyeU1h
bGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpCit2b2lkKiB0cnlGYXN0
TWFsbG9jSW1wbChzaXplX3Qgc2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQoc2l6
ZSk7CiAgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2FibGVNYWxs
b2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwogICAgIHJldHVybiBibWFsbG9jOjphcGk6OnRyeU1h
bGxvYyhzaXplKTsKIH0KIAotVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENhbGxvYyhzaXpl
X3QgbnVtRWxlbWVudHMsIHNpemVfdCBlbGVtZW50U2l6ZSkKK09iamVjdEFuZFNpemUgdHJ5RmFz
dE1hbGxvY0FuZFJldHVyblNpemUoc2l6ZV90IHNpemUpCit7CisgICAgRkFJTF9JRl9FWENFRURT
X0xJTUlUKHNpemUpOworICAgIEFTU0VSVCghZm9yYmlkTWFsbG9jVXNlU2NvcGVDb3VudCB8fCBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25TY29wZUNvdW50KTsKKyAgICBPYmplY3RBbmRTaXplIHJl
c3VsdCA9IGJtYWxsb2M6OmFwaTo6dHJ5TWFsbG9jQW5kUmV0dXJuU2l6ZShzaXplKTsKKyAgICBB
U1NFUlQocmVzdWx0LnNpemUgPj0gc2l6ZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9p
ZCogdHJ5RmFzdENhbGxvY0ltcGwoc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNp
emUpCiB7CiAgICAgRkFJTF9JRl9FWENFRURTX0xJTUlUKG51bUVsZW1lbnRzICogZWxlbWVudFNp
emUpOwogICAgIENoZWNrZWRTaXplIGNoZWNrZWRTaXplID0gZWxlbWVudFNpemU7CiAgICAgY2hl
Y2tlZFNpemUgKj0gbnVtRWxlbWVudHM7CiAgICAgaWYgKGNoZWNrZWRTaXplLmhhc092ZXJmbG93
ZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHRyeUZhc3RaZXJvZWRN
YWxsb2MoY2hlY2tlZFNpemUpOworICAgIHJldHVybiB0cnlGYXN0WmVyb2VkTWFsbG9jSW1wbChj
aGVja2VkU2l6ZSk7CiB9CiAKLVRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RSZWFsbG9jKHZv
aWQqIG9iamVjdCwgc2l6ZV90IG5ld1NpemUpCit2b2lkKiB0cnlGYXN0UmVhbGxvY0ltcGwodm9p
ZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSkKIHsKICAgICBGQUlMX0lGX0VYQ0VFRFNfTElNSVQo
bmV3U2l6ZSk7CiAgICAgQVNTRVJUKCFmb3JiaWRNYWxsb2NVc2VTY29wZUNvdW50IHx8IGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvblNjb3BlQ291bnQpOwpJbmRleDogU291cmNlL1dURi93dGYvRmFz
dE1hbGxvYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaAkocmV2
aXNpb24gMjgzODEzKQorKysgU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxuZXc+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5j
bHVkZSA8d3RmL0RlYnVnSGVhcC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RBbmRTaXplLmg+CiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTk1LDEw
ICs5NiwyNiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogZmFzdFJlYWxsb2Modm9pCiBXVEZf
RVhQT1JUX1BSSVZBVEUgY2hhciogZmFzdFN0ckR1cChjb25zdCBjaGFyKikgUkVUVVJOU19OT05O
VUxMOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQqIGZhc3RNZW1EdXAoY29uc3Qgdm9pZCosIHNp
emVfdCk7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0
TWFsbG9jKHNpemVfdCk7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgVHJ5TWFsbG9jUmV0dXJuVmFsdWUg
dHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplX3QpOwotV1RGX0VYUE9SVF9QUklWQVRFIFRyeU1hbGxv
Y1JldHVyblZhbHVlIHRyeUZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxl
bWVudFNpemUpOwotV1RGX0VYUE9SVF9QUklWQVRFIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZh
c3RSZWFsbG9jKHZvaWQqLCBzaXplX3QpOworLy8gSXQncyBpbXBvcnRhbnQgdGhhdCB0aGUgY2Fs
bCBib3VuZGFyeSBmb3IgdHJ5RmFzdEJsYWggZnVuY3Rpb25zIHVzZSBhcyBwcmltaXRpdmUgb2Yg
YSB0eXBlIGFzCisvLyBwb3NzaWJsZS4gT3RoZXJ3aXNlIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBi
ZSBwYXNzZWQgb24gdGhlIHN0YWNrLiBVc3VhbGx5IHRoYXQncyBub3QgYW4gaXNzdWUsIGJ1dAor
Ly8gaXQgY2FuIGJlIGFuIGlzc3VlIGZvciB0aGluZ3MgYXMgaG90IGFzIG1hbGxvYy4KKy8vCisv
LyBTbyAtIGRvIG5vdCB1c2UgdGhlIHRyeUZhc3RCbGFoSW1wbCBmdW5jdGlvbnMgZGlyZWN0bHk7
IHRoZXkgYXJlIG9ubHkgZXhwb3NlZCB0byByZWR1Y2UgdGhlCisvLyBvdmVyaGVhZCBvZiBUcnlN
YWxsb2NSZXR1cm5WYWx1ZS4KK1dURl9FWFBPUlRfUFJJVkFURSB2b2lkKiB0cnlGYXN0TWFsbG9j
SW1wbChzaXplX3QpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQqIHRyeUZhc3RaZXJvZWRNYWxs
b2NJbXBsKHNpemVfdCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCogdHJ5RmFzdENhbGxvY0lt
cGwoc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUpOworV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQqIHRyeUZhc3RSZWFsbG9jSW1wbCh2b2lkKiwgc2l6ZV90KTsKKworaW5saW5l
IFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IHNpemUpIHsgcmV0dXJu
IHRyeUZhc3RNYWxsb2NJbXBsKHNpemUpOyB9CitpbmxpbmUgVHJ5TWFsbG9jUmV0dXJuVmFsdWUg
dHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplX3Qgc2l6ZSkgeyByZXR1cm4gdHJ5RmFzdFplcm9lZE1h
bGxvY0ltcGwoc2l6ZSk7IH0KK2lubGluZSBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2Fs
bG9jKHNpemVfdCBudW1FbGVtZW50cywgc2l6ZV90IGVsZW1lbnRTaXplKSB7IHJldHVybiB0cnlG
YXN0Q2FsbG9jSW1wbChudW1FbGVtZW50cywgZWxlbWVudFNpemUpOyB9CitpbmxpbmUgVHJ5TWFs
bG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6
ZSkgeyByZXR1cm4gdHJ5RmFzdFJlYWxsb2NJbXBsKG9iamVjdCwgbmV3U2l6ZSk7IH0KKworLy8g
VGhlc2UgdmFyaWFudHMgb2YgbWFsbG9jIHdpbGwgdGVsbCB5b3UgdGhlIGFjdHVhbCBzaXplIGFs
bG9jYXRlZC4KK1dURl9FWFBPUlRfUFJJVkFURSBPYmplY3RBbmRTaXplIGZhc3RNYWxsb2NBbmRS
ZXR1cm5TaXplKHNpemVfdCBzaXplKTsKK1dURl9FWFBPUlRfUFJJVkFURSBPYmplY3RBbmRTaXpl
IHRyeUZhc3RNYWxsb2NBbmRSZXR1cm5TaXplKHNpemVfdCBzaXplKTsKK1dURl9FWFBPUlRfUFJJ
VkFURSBPYmplY3RBbmRTaXplIGZhc3RSZWFsbG9jQW5kUmV0dXJuU2l6ZSh2b2lkKiBvYmplY3Qs
IHNpemVfdCBzaXplKTsKIAogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZmFzdEZyZWUodm9pZCop
OwogCkBAIC0yNzEsMTQgKzI4OCwxNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PiBpbmxpbmUgCiAKIHN0cnVjdCBGYXN0TWFsbG9jIHsKICAgICBzdGF0aWMgdm9pZCogbWFsbG9j
KHNpemVfdCBzaXplKSB7IHJldHVybiBmYXN0TWFsbG9jKHNpemUpOyB9CisKKyAgICBzdGF0aWMg
T2JqZWN0QW5kU2l6ZSBtYWxsb2NBbmRSZXR1cm5TaXplKHNpemVfdCBzaXplKSB7IHJldHVybiBm
YXN0TWFsbG9jQW5kUmV0dXJuU2l6ZShzaXplKTsgfQogICAgIAogICAgIHN0YXRpYyB2b2lkKiB0
cnlNYWxsb2Moc2l6ZV90IHNpemUpCiAgICAgewotICAgICAgICBhdXRvIHJlc3VsdCA9IHRyeUZh
c3RNYWxsb2Moc2l6ZSk7Ci0gICAgICAgIHZvaWQqIHJlYWxSZXN1bHQ7Ci0gICAgICAgIGlmIChy
ZXN1bHQuZ2V0VmFsdWUocmVhbFJlc3VsdCkpCi0gICAgICAgICAgICByZXR1cm4gcmVhbFJlc3Vs
dDsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB0cnlGYXN0TWFsbG9j
SW1wbChzaXplKTsKKyAgICB9CisKKyAgICBzdGF0aWMgT2JqZWN0QW5kU2l6ZSB0cnlNYWxsb2NB
bmRSZXR1cm5TaXplKHNpemVfdCBzaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRyeUZhc3RN
YWxsb2NBbmRSZXR1cm5TaXplKHNpemUpOwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkKiB6ZXJv
ZWRNYWxsb2Moc2l6ZV90IHNpemUpIHsgcmV0dXJuIGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSk7IH0K
QEAgLTI5NCw2ICszMTQsOCBAQCBzdHJ1Y3QgRmFzdE1hbGxvYyB7CiAgICAgCiAgICAgc3RhdGlj
IHZvaWQqIHJlYWxsb2Modm9pZCogcCwgc2l6ZV90IHNpemUpIHsgcmV0dXJuIGZhc3RSZWFsbG9j
KHAsIHNpemUpOyB9CiAKKyAgICBzdGF0aWMgT2JqZWN0QW5kU2l6ZSByZWFsbG9jQW5kUmV0dXJu
U2l6ZSh2b2lkKiBwLCBzaXplX3Qgc2l6ZSkgeyByZXR1cm4gZmFzdFJlYWxsb2NBbmRSZXR1cm5T
aXplKHAsIHNpemUpOyB9CisKICAgICBzdGF0aWMgdm9pZCogdHJ5UmVhbGxvYyh2b2lkKiBwLCBz
aXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gdHJ5RmFzdFJlYWxsb2Mo
cCwgc2l6ZSk7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9PYmplY3RBbmRTaXplLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvT2JqZWN0QW5kU2l6ZS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XVEYvd3RmL09iamVjdEFuZFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCisjaWYgIVVTRShTWVNU
RU1fTUFMTE9DKQorI2luY2x1ZGUgPGJtYWxsb2MvT2JqZWN0QW5kU2l6ZS5oPgorI2VuZGlmIC8v
ICFVU0UoU1lTVEVNX01BTExPQykKKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVjdCBPYmplY3RB
bmRTaXplIHsKKyAgICBPYmplY3RBbmRTaXplKCkgPSBkZWZhdWx0OworCisgICAgT2JqZWN0QW5k
U2l6ZShudWxscHRyX3QpIHsgfQorCisgICAgT2JqZWN0QW5kU2l6ZSh2b2lkKiBvYmplY3QsIHNp
emVfdCBzaXplKQorICAgICAgICA6IG9iamVjdChvYmplY3QpCisgICAgICAgICwgc2l6ZShzaXpl
KQorICAgIHsKKyAgICB9CisKKyNpZiAhVVNFKFNZU1RFTV9NQUxMT0MpCisgICAgT2JqZWN0QW5k
U2l6ZShibWFsbG9jOjpPYmplY3RBbmRTaXplIG9iamVjdEFuZFNpemUpCisgICAgICAgIDogT2Jq
ZWN0QW5kU2l6ZShvYmplY3RBbmRTaXplLm9iamVjdCwgb2JqZWN0QW5kU2l6ZS5zaXplKQorICAg
IHsKKyAgICB9CisjZW5kaWYgLy8gIVVTRShTWVNURU1fTUFMTE9DKQorCisgICAgZXhwbGljaXQg
b3BlcmF0b3IgYm9vbCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISFvYmplY3Q7Cisg
ICAgfQorICAgIAorICAgIHZvaWQqIG9iamVjdCB7IG51bGxwdHIgfTsKKyAgICBzaXplX3Qgc2l6
ZSB7IDAgfTsgLy8gSXQncyBwb3NzaWJsZSBmb3IgdGhpcyB0byBoYXZlIGEgZ2FyYmFnZSB2YWx1
ZSBpZiAhb2JqZWN0LgorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6T2Jq
ZWN0QW5kU2l6ZTsKKwpJbmRleDogU291cmNlL1dURi93dGYvVmVjdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvVmVjdG9yLmgJKHJldmlzaW9uIDI4MzgxMykKKysrIFNvdXJjZS9X
VEYvd3RmL1ZlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5OCwxNiArMjk4LDE2IEBAIHB1YmxpYzoKICAg
ICAgICAgfQogCiAgICAgICAgIHNpemVfdCBzaXplVG9BbGxvY2F0ZSA9IG5ld0NhcGFjaXR5ICog
c2l6ZW9mKFQpOwotICAgICAgICBUKiBuZXdCdWZmZXIgPSBudWxscHRyOworICAgICAgICBPYmpl
Y3RBbmRTaXplIG5ld0J1ZmZlcjsKICAgICAgICAgaWYgY29uc3RleHByIChhY3Rpb24gPT0gRmFp
bHVyZUFjdGlvbjo6Q3Jhc2gpCi0gICAgICAgICAgICBuZXdCdWZmZXIgPSBzdGF0aWNfY2FzdDxU
Kj4oTWFsbG9jOjptYWxsb2Moc2l6ZVRvQWxsb2NhdGUpKTsKKyAgICAgICAgICAgIG5ld0J1ZmZl
ciA9IE1hbGxvYzo6bWFsbG9jQW5kUmV0dXJuU2l6ZShzaXplVG9BbGxvY2F0ZSk7CiAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgbmV3QnVmZmVyID0gc3RhdGljX2Nhc3Q8VCo+KE1hbGxvYzo6
dHJ5TWFsbG9jKHNpemVUb0FsbG9jYXRlKSk7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkoIW5l
d0J1ZmZlcikpCisgICAgICAgICAgICBuZXdCdWZmZXIgPSBNYWxsb2M6OnRyeU1hbGxvY0FuZFJl
dHVyblNpemUoc2l6ZVRvQWxsb2NhdGUpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFuZXdC
dWZmZXIub2JqZWN0KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
LSAgICAgICAgbV9jYXBhY2l0eSA9IHNpemVUb0FsbG9jYXRlIC8gc2l6ZW9mKFQpOwotICAgICAg
ICBtX2J1ZmZlciA9IG5ld0J1ZmZlcjsKKyAgICAgICAgbV9jYXBhY2l0eSA9IG5ld0J1ZmZlci5z
aXplIC8gc2l6ZW9mKFQpOworICAgICAgICBtX2J1ZmZlciA9IHN0YXRpY19jYXN0PFQqPihuZXdC
dWZmZXIub2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zMjUsOCAr
MzI1LDkgQEAgcHVibGljOgogICAgICAgICBpZiAobmV3Q2FwYWNpdHkgPiBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpIC8gc2l6ZW9mKFQpKQogICAgICAgICAgICAgQ1JBU0goKTsK
ICAgICAgICAgc2l6ZV90IHNpemVUb0FsbG9jYXRlID0gbmV3Q2FwYWNpdHkgKiBzaXplb2YoVCk7
Ci0gICAgICAgIG1fY2FwYWNpdHkgPSBzaXplVG9BbGxvY2F0ZSAvIHNpemVvZihUKTsKLSAgICAg
ICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxUKj4oTWFsbG9jOjpyZWFsbG9jKG1fYnVmZmVyLCBz
aXplVG9BbGxvY2F0ZSkpOworICAgICAgICBPYmplY3RBbmRTaXplIG5ld0J1ZmZlciA9IE1hbGxv
Yzo6cmVhbGxvY0FuZFJldHVyblNpemUobV9idWZmZXIsIHNpemVUb0FsbG9jYXRlKTsKKyAgICAg
ICAgbV9jYXBhY2l0eSA9IG5ld0J1ZmZlci5zaXplIC8gc2l6ZW9mKFQpOworICAgICAgICBtX2J1
ZmZlciA9IHN0YXRpY19jYXN0PFQqPihuZXdCdWZmZXIub2JqZWN0KTsKICAgICB9CiAKICAgICB2
b2lkIGRlYWxsb2NhdGVCdWZmZXIoVCogYnVmZmVyVG9EZWFsbG9jYXRlKQpJbmRleDogU291cmNl
L2JtYWxsb2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMxIEBACisyMDIxLTEwLTA4ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gU3VwcG9ydCB2YXJpYW50IG9mIG1hbGxv
YyB0aGF0IHJldHVybnMgdGhlIGFjdHVhbCBzaXplIGFuZCB1c2UgdGhhdCBpbiBXVEY6OlZlY3Rv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMTUx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBp
bnRyb2R1Y2VzIHZhcmlhbnRzIG9mIHRoZSBtYWxsb2MvdHJ5TWFsbG9jL3JlYWxsb2MgQVBJcyB0
aGF0IHJldHVybiB0aGUgYWN0dWFsbHkgYWxsb2NhdGVkCisgICAgICAgIHNpemUuIFRoaXMgaXMg
aW1wb3J0YW50IGZvciBsaWJwYXMgYmVjYXVzZSBsaWJwYXMgaGFzIHNsb3BweSBkeW5hbWljIHNp
emUgY2xhc3Nlcy4gSWYgeW91IGFzaworICAgICAgICBmb3IgbWFsbG9jKDQyKSwgeW91IG1pZ2h0
IGdldCBzb21ldGhpbmcgd2l0aCA+NDIgYnl0ZXMsIGFuZCB0aGUgZXhhY3QgYW1vdW50IGNhbiB2
YXJ5IGZyb20KKyAgICAgICAgbWFsbG9jKDQyKSBjYWxsIHRvIG1hbGxvYyg0MikgY2FsbCBiZWNh
dXNlIGxpYnBhcyB1c2VzIHNsb3BweSBzaXplIGNsYXNzZXMgKHRvIGNvbnRyb2wgZXh0ZXJuYWwK
KyAgICAgICAgZnJhZ21lbnRhdGlvbiksIGl0IGNob29zZXMgdGhvc2Ugc2l6ZSBjbGFzc2VzIGR5
bmFtaWNhbGx5LCB0aGV5IGFyZSBjaG9zZW4gb24gYSBwZXItaGVhcCBiYXNpcywKKyAgICAgICAg
YW5kIHRoZXkgY2hhbmdlIG92ZXIgdGltZSAobm90IHVzdWFsbHkgLS0gYnV0IHRoZXJlIGFyZSBm
dW4gY29ybmVyIGNhc2VzIGR1ZSB0byBtZW1hbGlnbiB0aGF0CisgICAgICAgIGNhdXNlIHNpemUg
Y2xhc3NlcyB0byBtb3JwaCkuIFNvLCBub3RoaW5nIGxpa2UgbWFsbG9jX2dvb2Rfc2l6ZSB3b3Vs
ZCB3b3JrLiBBcyB3ZWxsLCBsaWJwYXMncworICAgICAgICBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBj
YW4gdHJpdmlhbGx5IHJlcG9ydCB0aGUgYW1vdW50IG9mIGJ5dGVzIHRoZXkgYWN0dWFsbHkgYWxs
b2NhdGVkLgorCisgICAgICAgIEV4cG9zaW5nIHRoZSBhY3R1YWxseSBhbGxvY2F0ZWQgc2l6ZSBt
ZWFucyB0aGF0IFZlY3RvciAoYW5kIHRoaW5ncyBsaWtlIGl0KSBjYW4gc2V0IHRoZWlyCisgICAg
ICAgIG1fY2FwYWNpdHkgdG8gYmUgYmFzZWQgb24gdGhlIGFjdHVhbCBzaXplLCBub3QgdGhlIHNp
emUgdGhleSB0aG91Z2h0IHRoZXkgcmVxdWVzdGVkLgorCisgICAgICAgIFRoaXMgZ2V0cyBxdWl0
ZSBmdW4gYmVjYXVzZSBvZiBteSBkZXNpcmUgdG8gZW5zdXJlIHRoYXQgbWFsbG9jL2ZyZWUgZmFz
dCBwYXRocyBkb24ndCByZXF1aXJlIGEKKyAgICAgICAgc3RhY2sgZnJhbWUsIGNhbGxlZSBzYXZl
cywgb3IgUEFDLiBJJ3ZlIGZvdW5kIHRoYXQgZWFjaCBvZiB0aGVzZSB0aGluZ3MgbWFrZXMgYSBz
bGlnaHQKKyAgICAgICAgZGlmZmVyZW5jZS4gQnV0IGFjaGlldmluZyB0aGlzIHJlcXVpcmVzIHdy
aXRpbmcgdGhlIGZhc3QgcGF0aHMgaW4gYSB2ZXJ5IHBhcnRpY3VsYXIgd2F5LCB3aGVyZQorICAg
ICAgICB0aGUgb25seSBzbG93IHBhdGggY2FsbCBpcyBhIHNwZWNpZmljIGtpbmQgb2YgdGFpbCBj
YWxsLgorCisgICAgICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJtYWxsb2MvT2JqZWN0QW5kU2l6ZS5oOiBBZGRlZC4KKyAgICAgICAgKGJtYWxsb2M6
Ok9iamVjdEFuZFNpemU6Ok9iamVjdEFuZFNpemUpOgorICAgICAgICAoYm1hbGxvYzo6T2JqZWN0
QW5kU2l6ZTo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgICogYm1hbGxvYy9ibWFsbG9j
Lmg6CisgICAgICAgIChibWFsbG9jOjphcGk6OnRyeU1hbGxvY0FuZFJldHVyblNpemUpOgorICAg
ICAgICAoYm1hbGxvYzo6YXBpOjptYWxsb2NBbmRSZXR1cm5TaXplKToKKyAgICAgICAgKGJtYWxs
b2M6OmFwaTo6dHJ5UmVhbGxvY0FuZFJldHVyblNpemUpOgorICAgICAgICAoYm1hbGxvYzo6YXBp
OjpyZWFsbG9jQW5kUmV0dXJuU2l6ZSk6CisgICAgICAgICogbGlicGFzL2xpYnBhcy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2Nf
aGVhcC5jOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX3Ns
b3cpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfc2xvdyk6Cisg
ICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9zbG93KToKKyAgICAgICAgKGJtYWxsb2NfYWxs
b2NhdGVfc2xvdyk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9hbmRfcmV0dXJuX3Np
emUpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfYW5kX3Jl
dHVybl9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0
dXJuX3NpemUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemUpOgor
ICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemUp
OgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfYW5kX3JldHVybl9zaXplKToKKyAg
ICAgICAgKGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYW5kX3JldHVybl9zaXplKToKKyAgICAgICAg
KGJtYWxsb2NfcmVhbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemUpOgorICAgICAgICAoYm1hbGxvY190
cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2FuZF9yZXR1cm5fc2l6ZSk6CisgICAgICAgIChibWFsbG9j
X2FsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUpOgorICAgICAgICAoYm1hbGxvY190
cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9hbmRfcmV0dXJuX3NpemUpOgorICAgICAgICAo
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZSk6CisgICAg
ICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfYW5kX3Jl
dHVybl9zaXplKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxp
Z25tZW50X2FuZF9yZXR1cm5fc2l6ZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9yZWFsbG9jYXRl
X2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUpOgorICAgICAgICAoYm1hbGxvY19yZWFsbG9jYXRl
X2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUpOgorICAgICAgICAoYm1hbGxvY19yZWFsbG9jYXRl
X2F1eGlsaWFyeSk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxv
Y19oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2lubGlu
ZXMuaDoKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2lubGluZSk6CisgICAgICAgIChi
bWFsbG9jX3RyeV9hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKToKKyAgICAgICAgKGJt
YWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUp
OgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9p
bmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5l
KToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfYW5kX3JldHVybl9z
aXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0dXJu
X3NpemVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYW5kX3JldHVy
bl9zaXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3JlYWxsb2NhdGVfYW5kX3JldHVybl9z
aXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfYW5k
X3JldHVybl9zaXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFy
eV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRl
X2F1eGlsaWFyeV96ZXJvZWRfYW5kX3JldHVybl9zaXplX2lubGluZSk6CisgICAgICAgIChibWFs
bG9jX2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfYW5kX3JldHVybl9zaXplX2lubGluZSk6Cisg
ICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfYW5k
X3JldHVybl9zaXplX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFy
eV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemVfaW5saW5lKToKKyAgICAgICAgKGJtYWxs
b2NfdHJ5X3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUpOgorICAg
ICAgICAoYm1hbGxvY19yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5saW5l
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jl
c3VsdC5oOgorICAgICAgICAocGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2Nh
dGlvbl9yZXN1bHQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9u
X3Jlc3VsdC5oOgorICAgICAgICAocGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJl
KToKKyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3pl
cm9fbW9kZSk6CisgICAgICAgIChwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Mp
OgorICAgICAgICAocGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8pOgorICAgICAgICAocGFzX2Fs
bG9jYXRpb25fcmVzdWx0X3plcm9fYWN0dWFsKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfYml0Zml0X2Fs
bG9jYXRvcl90cnlfYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19k
ZWJ1Z19oZWFwLmg6CisgICAgICAgIChwYXNfZGVidWdfaGVhcF9hbGxvY2F0ZSk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oOgor
ICAgICAgICAocGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUpOgorICAgICAg
ICAocGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzcyk6CisgICAg
ICAgIChwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2Zyb21fYWxsb2NhdGlvbl9yZXN1
bHQpOgorICAgICAgICAocGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF90b19hbGxvY2F0
aW9uX3Jlc3VsdCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2dlbmVyaWNfbGFy
Z2VfZnJlZV9oZWFwLmg6CisgICAgICAgIChwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXBfdHJ5
X2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9p
bmxpbmVzLmg6CisgICAgICAgIChwYXNfbGFyZ2VfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2Nh
dGlvbl9yZXN1bHQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxv
Y2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfcHJp
bW9yZGlhbF9idW1wKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRl
X3dpdGhfZnJlZV9iaXRzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9j
YXRlX2lubGluZV9jYXNlcyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxv
Y2F0ZV9pbmxpbmVfb25seSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxv
Y2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX29iamVjdF93aXRoX3NpemUu
aDogQWRkZWQuCisgICAgICAgIChwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZW1wdHkpOgor
ICAgICAgICAocGFzX29iamVjdF93aXRoX3NpemVfY3JlYXRlKToKKyAgICAgICAgKHBhc19vYmpl
Y3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2Fs
bG9jYXRlX2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2Nh
dGVfYXJyYXkuaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbCk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmg6CisgICAgICAgIChw
YXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX2FsbG9jYXRlX2NhbGxiYWNrKToKKyAgICAgICAg
KHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWMpOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9j
YXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9jYWxsYmFjayk6CisgICAgICAgIChwYXNfdHJ5X3JlYWxs
b2NhdGVfcHJpbWl0aXZlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHQuaDoKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmVhdGVfZW1wdHkpOgorICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2Ny
ZWF0ZSk6CisgICAgICAgIChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2NhdGlv
bl9yZXN1bHQpOgorICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3plcm8pOgor
ICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk6CisgICAgICAg
IChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOgorICAgICAgICAo
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KTogRGVsZXRlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjpibWFs
bG9jQWxsb2NhdGVBbmRSZXR1cm5TaXplQW5kQXNzZXJ0U2l6ZSk6CisgICAgICAgIChhZGRJc29I
ZWFwQ2hhb3NUZXN0cyk6CisKIDIwMjEtMDktMzAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbGlicGFzXSBDaGFuZ2UgdGhlIG5hbWVzIG9mIGxpYnBhcyBoZWFw
IHJ1bnRpbWUgY29uZmlncyB0byBzb21ldGhpbmcgc2ltcGxlciAoaW50cmluc2ljLCBwcmltaXRp
dmUsIHR5cGVkLCBhbmQgZmxleCkgYW5kIGFkZCBjb21tZW50cyBkZXNjcmliaW5nIHdoYXQgdGhl
eSBhcmUgKHVwZGF0ZSB0byAzMmFiYzFmZDU0ODllMDFhYTFjNTA0YWU0NjU0OTY3MDQ3ZDNmMDcy
KQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw4IEBACiAJ
CTBGNTE5M0YyMjY2QzQyQUQwMDQ4M0EyQyAvKiBqaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTkzRUMyNjZDNDJBQzAwNDgzQTJDIC8q
IGppdF9oZWFwLmMgKi87IH07CiAJCTBGNTE5M0YzMjY2QzQyQUQwMDQ4M0EyQyAvKiBwYXNfYmFz
aWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxOTNFRDI2NkM0MkFEMDA0ODNBMkMgLyogcGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5jICovOyB9OwogCQkwRjUxOTNGNTI2NkM0
MkJGMDA0ODNBMkMgLyogcGFzX3RyeV9zaHJpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE5M0Y0MjY2QzQyQkYwMDQ4M0EyQyAvKiBwYXNfdHJ5
X3Nocmluay5oICovOyB9OworCQkwRjUyMTJFNzI3MEEyM0NEMDAzNEUxRUQgLyogcGFzX29iamVj
dF93aXRoX3NpemUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNTIxMkU2MjcwQTIzQ0QwMDM0RTFFRCAvKiBwYXNfb2JqZWN0X3dpdGhfc2l6ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNTIxMkU5
MjcwQTRCQUIwMDM0RTFFRCAvKiBPYmplY3RBbmRTaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUyMTJFODI3MEE0QkFCMDAzNEUxRUQgLyogT2Jq
ZWN0QW5kU2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGNTI5REUxMjQ1NTQ2M0YwMDM4NUE4QyAvKiBpc29faGVhcF9yZWYuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTI5REUwMjQ1NTQ2M0Yw
MDM4NUE4QyAvKiBpc29faGVhcF9yZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjU1NDlFRjFGQjU0NzA0MDA3RkY3NUEgLyogSXNvUGFnZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1NDlF
RTFGQjU0NzAxMDA3RkY3NUEgLyogSXNvUGFnZS5jcHAgKi87IH07CiAJCTBGNUJGMTQ3MUYyMkE4
QjEwMDI5RDkxRCAvKiBIZWFwS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1QkYxNDYxRjIyQThCMTAwMjlEOTFEIC8qIEhlYXBLaW5kLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY5Myw2ICs2
OTUsOCBAQAogCQkwRjUxOTNFQzI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXAuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gaml0X2hlYXAuYzsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL2ppdF9oZWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE5M0VE
MjY2QzQyQUQwMDQ4M0EyQyAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRh
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iYXNpY19oZWFwX2NvbmZp
Z19lbnVtZXJhdG9yX2RhdGEuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNpY19o
ZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY1MTkzRjQyNjZDNDJCRjAwNDgzQTJDIC8qIHBhc190cnlfc2hyaW5rLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc190cnlfc2hyaW5rLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfdHJ5X3Nocmluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjUyMTJFNjI3MEEyM0NEMDAzNEUxRUQgLyogcGFzX29iamVjdF93aXRoX3NpemUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX29iamVjdF93aXRoX3NpemUuaDsgcGF0
aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19vYmplY3Rfd2l0aF9zaXplLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGNTIxMkU4MjcwQTRCQUIwMDM0RTFFRCAvKiBPYmplY3RBbmRT
aXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9iamVjdEFuZFNpemUuaDsg
cGF0aCA9IGJtYWxsb2MvT2JqZWN0QW5kU2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjUyOURFMDI0NTU0NjNGMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IGlzb19oZWFwX3JlZi5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvaXNvX2hlYXBfcmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NTU0OUVFMUZCNTQ3MDEwMDdGRjc1QSAvKiBJc29QYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IElzb1BhZ2UuY3BwOyBwYXRoID0gYm1hbGxvYy9Jc29QYWdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1QkYxNDYxRjIyQThCMTAwMjlEOTFE
IC8qIEhlYXBLaW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhlYXBLaW5kLmg7IHBhdGggPSBibWFsbG9j
L0hlYXBLaW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzE1LDYgKzE3MTks
NyBAQAogCQkJCTBGQzQwQUQyMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbXV0YXRpb25fY291bnQu
aCAqLywKIAkJCQkwRjg3MDA0RTI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX29iamVjdF9raW5kLmgg
Ki8sCiAJCQkJMEZDNDBBM0IyNDUxNDk4NjAwODc2REEwIC8qIHBhc19vYmplY3Rfc2l6ZV9tb2Rl
LmggKi8sCisJCQkJMEY1MjEyRTYyNzBBMjNDRDAwMzRFMUVEIC8qIHBhc19vYmplY3Rfd2l0aF9z
aXplLmggKi8sCiAJCQkJMEY4NzAwNUUyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnX2lubGluZXMuaCAqLywKIAkJCQkwRjg3MDA1NjI1QUY4QTFBMDAwRTFBQkYgLyogcGFz
X3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovLAogCQkJCTBGODcwMDREMjVBRjhB
MTkwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICovLApAQCAtMjAzNyw2
ICsyMDQyLDcgQEAKIAkJCQkxNEM4OTkyQTFDQzQ4NUU3MDAyN0EwNTcgLyogTWFwLmggKi8sCiAJ
CQkJMTQzQ0I4MUExOTAyMkJDOTAwQjE2QTQ1IC8qIE11dGV4LmNwcCAqLywKIAkJCQkxNDNDQjgx
QjE5MDIyQkM5MDBCMTZBNDUgLyogTXV0ZXguaCAqLywKKwkJCQkwRjUyMTJFODI3MEE0QkFCMDAz
NEUxRUQgLyogT2JqZWN0QW5kU2l6ZS5oICovLAogCQkJCUUzMjhEODRDMjNDRUIzODkwMDU0NUIx
OCAvKiBQYWNrZWQuaCAqLywKIAkJCQkwRjVCRjE0ODFGMjJBOEQ4MDAyOUQ5MUQgLyogUGVySGVh
cEtpbmQuaCAqLywKIAkJCQkwRjI2QTdBNDIwNTQ4MzBEMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5j
cHAgKi8sCkBAIC0yMTMyLDYgKzIxMzgsNyBAQAogCQkJCTBGNTI5REUxMjQ1NTQ2M0YwMDM4NUE4
QyAvKiBpc29faGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOTQwMjQ1MTQ5NDQw
MDg3NkRBMCAvKiBpc29fdGVzdF9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDk1MzI0
NTE0OTQ0MDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTIxMkU3MjcwQTIzQ0QwMDM0RTFFRCAvKiBwYXNfb2JqZWN0X3dpdGhfc2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4M0MxRjk1NDFCMDAwRjFBQkNCIC8qIElzb0FsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4MjYxRjk1NDFCMDAwRjFBQkNCIC8qIElzb0Fs
bG9jYXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODQxMUY5NTQxQjAwMEYx
QUJDQiAvKiBJc29Db25maWcuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4Miw2ICsyMzg5LDcgQEAK
IAkJCQkwRkM0MEI5QzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY4NzAwNjUyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2Fj
aGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjA0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
bWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTIxMkU5MjcwQTRCQUIwMDM0
RTFFRCAvKiBPYmplY3RBbmRTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI1QTI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI0
RTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21vbm90b25pY190aW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEJBRDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX211dGF0aW9uX2NvdW50LmggaW4g
SGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0QW5kU2l6ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0QW5kU2l6ZS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvT2JqZWN0QW5kU2l6ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBbGdvcml0aG0u
aCIKKyNpbmNsdWRlICJCQXNzZXJ0LmgiCisKKyNpZiBCVVNFKExJQlBBUykKKyNpZm5kZWYgUEFT
X0JNQUxMT0MKKyNkZWZpbmUgUEFTX0JNQUxMT0MgMQorI2VuZGlmCisjaW5jbHVkZSAicGFzX29i
amVjdF93aXRoX3NpemUuaCIKKyNlbmRpZiAvLyBCVVNFKExJQlBBUykKKworbmFtZXNwYWNlIGJt
YWxsb2MgeworCitzdHJ1Y3QgT2JqZWN0QW5kU2l6ZSB7CisgICAgT2JqZWN0QW5kU2l6ZSgpID0g
ZGVmYXVsdDsKKworICAgIE9iamVjdEFuZFNpemUodm9pZCogb2JqZWN0LCBzaXplX3Qgc2l6ZSkK
KyAgICAgICAgOiBvYmplY3Qob2JqZWN0KQorICAgICAgICAsIHNpemUoc2l6ZSkKKyAgICB7Cisg
ICAgfQorCisjaWYgQlVTRShMSUJQQVMpCisgICAgT2JqZWN0QW5kU2l6ZShwYXNfb2JqZWN0X3dp
dGhfc2l6ZSBvYmplY3RXaXRoU2l6ZSkKKyAgICAgICAgOiBPYmplY3RBbmRTaXplKG9iamVjdFdp
dGhTaXplLm9iamVjdCwgb2JqZWN0V2l0aFNpemUuc2l6ZSkKKyAgICB7CisgICAgfQorI2VuZGlm
IC8vIEJVU0UoTElCUEFTKQorCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gISFvYmplY3Q7CisgICAgfQorICAgIAorICAgIHZvaWQqIG9i
amVjdCB7IG51bGxwdHIgfTsKKyAgICBzaXplX3Qgc2l6ZSB7IDAgfTsgLy8gSXQncyBwb3NzaWJs
ZSBmb3IgdGhpcyB0byBoYXZlIGEgZ2FyYmFnZSB2YWx1ZSBpZiAhb2JqZWN0LgorfTsKKworfSAv
LyBuYW1lc3BhY2UgYm1hbGxvYworCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvYm1h
bGxvYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvYm1hbGxvYy5oCShy
ZXZpc2lvbiAyODM4MTMpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxsb2MuaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRl
ICJJc29UTFMuaCIKICNpbmNsdWRlICJNdXRleC5oIgorI2luY2x1ZGUgIk9iamVjdEFuZFNpemUu
aCIKICNpbmNsdWRlICJQZXJIZWFwS2luZC5oIgogI2luY2x1ZGUgIlNjYXZlbmdlci5oIgogCkBA
IC02Nyw2ICs2OCwxNyBAQCBCSU5MSU5FIHZvaWQqIHRyeU1hbGxvYyhzaXplX3Qgc2l6ZSwgSGVh
CiAjZW5kaWYKIH0KIAorQklOTElORSBPYmplY3RBbmRTaXplIHRyeU1hbGxvY0FuZFJldHVyblNp
emUoc2l6ZV90IHNpemUsIEhlYXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSkKK3sKKyNp
ZiBCVVNFKExJQlBBUykKKyAgICBpZiAoIWlzR2lnYWNhZ2Uoa2luZCkpCisgICAgICAgIHJldHVy
biBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKHNpemUpOworICAg
IHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lu
bGluZSgmaGVhcEZvcktpbmQoZ2lnYWNhZ2VLaW5kKGtpbmQpKSwgc2l6ZSk7CisjZWxzZQorICAg
IHJldHVybiBPYmplY3RBbmRTaXplKENhY2hlOjp0cnlBbGxvY2F0ZShraW5kLCBzaXplKSwgc2l6
ZSk7CisjZW5kaWYKK30KKwogLy8gQ3Jhc2hlcyBvbiBmYWlsdXJlLgogQklOTElORSB2b2lkKiBt
YWxsb2Moc2l6ZV90IHNpemUsIEhlYXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSkKIHsK
QEAgLTc5LDYgKzkxLDE3IEBAIEJJTkxJTkUgdm9pZCogbWFsbG9jKHNpemVfdCBzaXplLCBIZWFw
S2kKICNlbmRpZgogfQogCitCSU5MSU5FIE9iamVjdEFuZFNpemUgbWFsbG9jQW5kUmV0dXJuU2l6
ZShzaXplX3Qgc2l6ZSwgSGVhcEtpbmQga2luZCA9IEhlYXBLaW5kOjpQcmltYXJ5KQoreworI2lm
IEJVU0UoTElCUEFTKQorICAgIGlmICghaXNHaWdhY2FnZShraW5kKSkKKyAgICAgICAgcmV0dXJu
IGJtYWxsb2NfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZShzaXplKTsKKyAgICByZXR1
cm4gYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZSgmaGVh
cEZvcktpbmQoZ2lnYWNhZ2VLaW5kKGtpbmQpKSwgc2l6ZSk7CisjZWxzZQorICAgIHJldHVybiBP
YmplY3RBbmRTaXplKENhY2hlOjphbGxvY2F0ZShraW5kLCBzaXplKSwgc2l6ZSk7CisjZW5kaWYK
K30KKwogQkVYUE9SVCB2b2lkKiBtYWxsb2NPdXRPZkxpbmUoc2l6ZV90IHNpemUsIEhlYXBLaW5k
IGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSk7CiAKIC8vIFJldHVybnMgbnVsbCBvbiBmYWlsdXJl
LgpAQCAtMTA3LDYgKzEzMCw5IEBAIEJJTkxJTkUgdm9pZCogbWVtYWxpZ24oc2l6ZV90IGFsaWdu
bWVudCwKICNlbmRpZgogfQogCisvLyBOT1RFOiBXZSBjb3VsZCBhZGQgbWVtYWxpZ24gdmFyaWFu
dHMgdGhhdCByZXR1cm4gT2JqZWN0QW5kU2l6ZTsgd2UganVzdCBoYXZlbid0IGhhZCBhIG5lZWQg
Zm9yIHRoZW0KKy8vIHlldC4KKwogLy8gUmV0dXJucyBudWxsIG9uIGZhaWx1cmUuCiBCSU5MSU5F
IHZvaWQqIHRyeVJlYWxsb2Modm9pZCogb2JqZWN0LCBzaXplX3QgbmV3U2l6ZSwgSGVhcEtpbmQg
a2luZCA9IEhlYXBLaW5kOjpQcmltYXJ5KQogewpAQCAtMTIyLDYgKzE0OCwyMCBAQCBCSU5MSU5F
IHZvaWQqIHRyeVJlYWxsb2Modm9pZCogb2JqZWN0LCBzCiAjZW5kaWYKIH0KIAorQklOTElORSBP
YmplY3RBbmRTaXplIHRyeVJlYWxsb2NBbmRSZXR1cm5TaXplKHZvaWQqIG9iamVjdCwgc2l6ZV90
IG5ld1NpemUsIEhlYXBLaW5kIGtpbmQgPSBIZWFwS2luZDo6UHJpbWFyeSkKK3sKKyNpZiBCVVNF
KExJQlBBUykKKyAgICBpZiAoIWlzR2lnYWNhZ2Uoa2luZCkpIHsKKyAgICAgICAgcmV0dXJuIGJt
YWxsb2NfdHJ5X3JlYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZSgKKyAgICAgICAgICAg
IG9iamVjdCwgbmV3U2l6ZSwgcGFzX3JlYWxsb2NhdGVfZnJlZV9pZl9zdWNjZXNzZnVsKTsKKyAg
ICB9CisgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2FuZF9yZXR1
cm5fc2l6ZV9pbmxpbmUoCisgICAgICAgIG9iamVjdCwgJmhlYXBGb3JLaW5kKGdpZ2FjYWdlS2lu
ZChraW5kKSksIG5ld1NpemUsIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCk7Cisj
ZWxzZQorICAgIHJldHVybiBPYmplY3RBbmRTaXplKENhY2hlOjp0cnlSZWFsbG9jYXRlKGtpbmQs
IG9iamVjdCwgbmV3U2l6ZSksIG5ld1NpemUpOworI2VuZGlmCit9CisKIC8vIENyYXNoZXMgb24g
ZmFpbHVyZS4KIEJJTkxJTkUgdm9pZCogcmVhbGxvYyh2b2lkKiBvYmplY3QsIHNpemVfdCBuZXdT
aXplLCBIZWFwS2luZCBraW5kID0gSGVhcEtpbmQ6OlByaW1hcnkpCiB7CkBAIC0xMzUsNiArMTc1
LDE4IEBAIEJJTkxJTkUgdm9pZCogcmVhbGxvYyh2b2lkKiBvYmplY3QsIHNpemUKICNlbmRpZgog
fQogCitCSU5MSU5FIE9iamVjdEFuZFNpemUgcmVhbGxvY0FuZFJldHVyblNpemUodm9pZCogb2Jq
ZWN0LCBzaXplX3QgbmV3U2l6ZSwgSGVhcEtpbmQga2luZCA9IEhlYXBLaW5kOjpQcmltYXJ5KQor
eworI2lmIEJVU0UoTElCUEFTKQorICAgIGlmICghaXNHaWdhY2FnZShraW5kKSkKKyAgICAgICAg
cmV0dXJuIGJtYWxsb2NfcmVhbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKG9iamVjdCwg
bmV3U2l6ZSwgcGFzX3JlYWxsb2NhdGVfZnJlZV9pZl9zdWNjZXNzZnVsKTsKKyAgICByZXR1cm4g
Ym1hbGxvY19yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAg
ICAgICBvYmplY3QsICZoZWFwRm9yS2luZChnaWdhY2FnZUtpbmQoa2luZCkpLCBuZXdTaXplLCBw
YXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nlc3NmdWwpOworI2Vsc2UKKyAgICByZXR1cm4gT2Jq
ZWN0QW5kU2l6ZShDYWNoZTo6cmVhbGxvY2F0ZShraW5kLCBvYmplY3QsIG5ld1NpemUpLCBuZXdT
aXplKTsKKyNlbmRpZgorfQorCiAvLyBSZXR1cm5zIG51bGwgb24gZmFpbHVyZS4KIC8vIFRoaXMg
QVBJIHdpbGwgZ2l2ZSB5b3UgemVyb2VkIHBhZ2VzIHRoYXQgYXJlIHJlYWR5IHRvIGJlIHVzZWQu
IFRoZXNlIHBhZ2VzCiAvLyB3aWxsIHBhZ2UgZmF1bHQgb24gZmlyc3QgYWNjZXNzLiBJdCByZXR1
cm5zIHRvIHlvdSBtZW1vcnkgdGhhdCBpbml0aWFsbHkgb25seQpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDcgQEAKIAkJ
MEY1MTZFRTMyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE2RUUyMjQ1NjBGRjUw
MDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggKi87IH07CiAJCTBGNTE2RUU3MjQ1NjFB
NjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFNjI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hl
YXBfaW5uYXJkcy5oICovOyB9OwogCQkwRjUxOTNFNzI2NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVh
cFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwICovOyB9OworCQkw
RjUyMTJFNTI3MEEyM0E5MDAzNEUxRUQgLyogcGFzX29iamVjdF93aXRoX3NpemUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTIxMkU0MjcwQTIzQTkw
MDM0RTFFRCAvKiBwYXNfb2JqZWN0X3dpdGhfc2l6ZS5oICovOyB9OwogCQkwRjUyOURERjI0NTU0
NjBDMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUyOURERTI0NTU0NjBDMDAzODVBOEMgLyogaXNvX2hlYXBf
cmVmLmggKi87IH07CiAJCTBGNTMxODBGMjJDOTUyOTQwMDNGN0I2QSAvKiBwYXNfZm91bmRfaW5k
ZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTMx
ODBFMjJDOTUyOTMwMDNGN0I2QSAvKiBwYXNfZm91bmRfaW5kZXguaCAqLzsgfTsKIAkJMEY1MzE4
MTEyMkM5NTRFRDAwM0Y3QjZBIC8qIEJpdHZlY3RvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTMxODEwMjJDOTU0RUQwMDNGN0I2QSAv
KiBCaXR2ZWN0b3JUZXN0cy5jcHAgKi87IH07CkBAIC04MTUsNiArODE2LDcgQEAKIAkJMEY1MTZF
RTIyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2ludGVybmFsX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjUxNkVFNjI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5u
YXJkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBpc29faGVhcF9pbm5hcmRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE5M0U2MjY2QUU1RDQwMDQ4M0Ey
QyAvKiBKSVRIZWFwVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSklUSGVhcFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY1MjEy
RTQyNzBBMjNBOTAwMzRFMUVEIC8qIHBhc19vYmplY3Rfd2l0aF9zaXplLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19vYmplY3Rfd2l0aF9zaXplLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNTI5RERFMjQ1NTQ2MEMwMDM4NUE4QyAvKiBpc29faGVhcF9y
ZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaXNvX2hlYXBfcmVmLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTMxODBFMjJDOTUyOTMwMDNGN0I2QSAvKiBw
YXNfZm91bmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Zv
dW5kX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTMxODEwMjJDOTU0
RUQwMDNGN0I2QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBCaXR2ZWN0b3JUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjgxLDYgKzE2ODMsNyBAQAogCQkJCTBGRDQ4QUZEMjNBOUFCQjAwMDI2QzQ2RCAv
KiBwYXNfbW9ub3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRjA5MjI2OTIyQjA3QzIxMDA3RDVEM0Eg
LyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCiAJCQkJMEY5QTFENEEyNTVGMkNENzAwQzhEMTFC
IC8qIHBhc19vYmplY3Rfa2luZC5oICovLAorCQkJCTBGNTIxMkU0MjcwQTIzQTkwMDM0RTFFRCAv
KiBwYXNfb2JqZWN0X3dpdGhfc2l6ZS5oICovLAogCQkJCTBGOUExRDQyMjU1QUY3MzIwMEM4RDEx
QiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEY5QTFDQUIyNTU5
OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywK
IAkJCQkwRjlBMUNENDI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRp
bHMuaCAqLywKQEAgLTIxMjUsNiArMjEyOCw3IEBACiAJCQkJMEY2RDU0N0IyM0M1NzNFMTAwRjQw
REJCIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjRGNjE1QjI1OUJGNkVDMDA4QjRBODIgLyogcGFzX3B0cl9oYXNoX21h
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFDRjQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19j
b21taXRfc3Bhbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1MjEyRTUyNzBBMjNBOTAwMzRFMUVE
IC8qIHBhc19vYmplY3Rfd2l0aF9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEI2NTIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRjA4RjNBMjJBNUI0MDMwMDM4NjU3NSAvKiBwYXNfZ2VuZXJp
Y19sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NjY3MjNDQkQxOUQw
MEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9w
dHIuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvYm1hbGxvY19oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvYm1hbGxvY19oZWFwLmMJKHJldmlzaW9uIDI4MzgxMykKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC00
OCwyNCArNDgsNTYgQEAgcGFzX2hlYXAgYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAgPQog
CiBwYXNfYWxsb2NhdG9yX2NvdW50cyBibWFsbG9jX2FsbG9jYXRvcl9jb3VudHM7CiAKK1BBU19O
RVZFUl9JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY190cnlfYWxsb2NhdGVfYW5k
X3JldHVybl9zaXplX3Nsb3coc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIHBhc19vYmplY3Rf
d2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAgICBibWFsbG9j
X3RyeV9hbGxvY2F0ZV9pbXBsX21lZGl1bV9zbG93X2Nhc2Uoc2l6ZSwgMSkpOworfQorCitQQVNf
TkVWRVJfSU5MSU5FIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfYW5kX3Jl
dHVybl9zaXplX3Nsb3coc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIHBhc19vYmplY3Rfd2l0
aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAgICBibWFsbG9jX2Fs
bG9jYXRlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZShzaXplLCAxKSk7Cit9CisKK1BBU19ORVZFUl9J
TkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSkKK3sKKyAg
ICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX3Nsb3coc2l6ZSku
b2JqZWN0OworfQorCitQQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfc2xv
dyhzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJu
X3NpemVfc2xvdyhzaXplKS5vYmplY3Q7Cit9CisKIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRl
KHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUo
c2l6ZSk7CiB9CiAKK3Bhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2Fu
ZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY190cnlfYWxs
b2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZShzaXplKTsKK30KKwogdm9pZCogYm1hbGxvY190
cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQp
CiB7CiAgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2lubGlu
ZShzaXplLCBhbGlnbm1lbnQpOwogfQogCitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3Ry
eV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemUoc2l6ZV90IHNpemUsIHNp
emVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhf
YWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZSwgYWxpZ25tZW50KTsKK30KKwog
dm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkKHNpemVfdCBzaXplKQogewogICAgIHJl
dHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKHNpemUpOwogfQogCi1QQVNf
TkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSkKK3Bh
c19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0dXJu
X3NpemUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRl
X2ltcGxfbWVkaXVtX3Nsb3dfY2FzZShzaXplLCAxKS5iZWdpbjsKKyAgICByZXR1cm4gYm1hbGxv
Y190cnlfYWxsb2NhdGVfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZSk7CiB9CiAK
IHZvaWQqIGJtYWxsb2NfYWxsb2NhdGUoc2l6ZV90IHNpemUpCkBAIC03MywyOCArMTA1LDU1IEBA
IHZvaWQqIGJtYWxsb2NfYWxsb2NhdGUoc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIGJtYWxsb2Nf
YWxsb2NhdGVfaW5saW5lKHNpemUpOwogfQogCitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9j
X2FsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1h
bGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKHNpemUpOworfQorCiB2b2lkKiBi
bWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25t
ZW50KQogewogICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2lubGlu
ZShzaXplLCBhbGlnbm1lbnQpOwogfQogCitwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX2Fs
bG9jYXRlX3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSwgc2l6ZV90
IGFsaWdubWVudCkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdubWVu
dF9hbmRfcmV0dXJuX3NpemVfaW5saW5lKHNpemUsIGFsaWdubWVudCk7Cit9CisKIHZvaWQqIGJt
YWxsb2NfYWxsb2NhdGVfemVyb2VkKHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBibWFsbG9j
X2FsbG9jYXRlX3plcm9lZF9pbmxpbmUoc2l6ZSk7CiB9CiAKK3Bhc19vYmplY3Rfd2l0aF9zaXpl
IGJtYWxsb2NfYWxsb2NhdGVfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSkKK3sK
KyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfYW5kX3JldHVybl9zaXplX2lubGlu
ZShzaXplKTsKK30KKwogdm9pZCogYm1hbGxvY190cnlfcmVhbGxvY2F0ZSh2b2lkKiBvbGRfcHRy
LCBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFs
bG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7CiAgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X3Jl
YWxsb2NhdGVfaW5saW5lKG9sZF9wdHIsIG5ld19zaXplLCBmcmVlX21vZGUpOwogfQogCitwYXNf
b2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZSh2
b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21v
ZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2FuZF9y
ZXR1cm5fc2l6ZV9pbmxpbmUob2xkX3B0ciwgbmV3X3NpemUsIGZyZWVfbW9kZSk7Cit9CisKIHZv
aWQqIGJtYWxsb2NfcmVhbGxvY2F0ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9k
ZSkKIHsKICAgICByZXR1cm4gYm1hbGxvY19yZWFsbG9jYXRlX2lubGluZShvbGRfcHRyLCBuZXdf
c2l6ZSwgZnJlZV9tb2RlKTsKIH0KIAorcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19yZWFs
bG9jYXRlX2FuZF9yZXR1cm5fc2l6ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCit7CisgICAgcmV0dXJuIGJtYWxsb2Nf
cmVhbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKG9sZF9wdHIsIG5ld19zaXplLCBmcmVl
X21vZGUpOworfQorCiB2b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGUocGFzX2hlYXBfcmVm
KiBoZWFwX3JlZikKIHsKICAgICByZXR1cm4gYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2lubGlu
ZShoZWFwX3JlZik7CkBAIC0xNzksMTIgKzIzOCw2MyBAQCB2b2lkKiBibWFsbG9jX3RyeV9yZWFs
bG9jYXRlX2F1eGlsaWFyeSh2CiAgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4
aWxpYXJ5X2lubGluZShvbGRfcHRyLCBoZWFwX3JlZiwgbmV3X3NpemUsIGZyZWVfbW9kZSk7CiB9
CiAKLXZvaWQqIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnkodm9pZCogb2xkX3B0ciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiog
aGVhcF9yZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdf
c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVf
ZnJlZV9tb2RlIGZyZWVfbW9kZSkKK3Bhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiog
aGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBibWFsbG9j
X3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZShoZWFwX3JlZiwg
c2l6ZSk7Cit9CisKK3Bhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxp
YXJ5X2FuZF9yZXR1cm5fc2l6ZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlh
cnlfYW5kX3JldHVybl9zaXplX2lubGluZShoZWFwX3JlZiwgc2l6ZSk7Cit9CisKK3Bhc19vYmpl
Y3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfYW5kX3Jl
dHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNp
emVfdCBzaXplKQoreworICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlf
emVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoaGVhcF9yZWYsIHNpemUpOworfQorCitwYXNf
b2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfYW5kX3Jl
dHVybl9zaXplKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlf
emVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoaGVhcF9yZWYsIHNpemUpOworfQorCitwYXNf
b2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGln
bm1lbnRfYW5kX3JldHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBf
cmVmLAorICAgIHNpemVfdCBzaXplLAorICAgIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0
dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVudF9hbmRfcmV0
dXJuX3NpemVfaW5saW5lKAorICAgICAgICBoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KTsKK30K
KworcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9h
bGlnbm1lbnRfYW5kX3JldHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhl
YXBfcmVmLAorICAgIHNpemVfdCBzaXplLAorICAgIHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAg
cmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1
cm5fc2l6ZV9pbmxpbmUoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCk7Cit9CisKK3Bhc19vYmpl
Y3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2FuZF9yZXR1cm5f
c2l6ZSh2b2lkKiBvbGRfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYq
IGhlYXBfcmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBibWFsbG9j
X3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAgICAg
ICBvbGRfcHRyLCBoZWFwX3JlZiwgbmV3X3NpemUsIGZyZWVfbW9kZSk7Cit9CisKK3Bhc19vYmpl
Y3Rfd2l0aF9zaXplIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXpl
KHZvaWQqIG9sZF9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Zy
ZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhp
bGlhcnlfaW5saW5lKG9sZF9wdHIsIGhlYXBfcmVmLCBuZXdfc2l6ZSwgZnJlZV9tb2RlKTsKKyAg
ICByZXR1cm4gYm1hbGxvY19yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5s
aW5lKG9sZF9wdHIsIGhlYXBfcmVmLCBuZXdfc2l6ZSwgZnJlZV9tb2RlKTsKIH0KIAogdm9pZCBi
bWFsbG9jX2RlYWxsb2NhdGUodm9pZCogcHRyKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmgJKHJldmlzaW9uIDI4MzgxMykKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEJNQUxMT0NfSEVBUF9ICiAKICNpbmNsdWRl
ICJibWFsbG9jX2hlYXBfcmVmLmgiCisjaW5jbHVkZSAicGFzX29iamVjdF93aXRoX3NpemUuaCIK
ICNpbmNsdWRlICJwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAicGFzX3JlYWxs
b2NhdGVfZnJlZV9tb2RlLmgiCiAKQEAgLTUyLDYgKzUzLDI0IEBAIFBBU19BUEkgdm9pZCogYm1h
bGxvY190cnlfcmVhbGxvY2F0ZSh2b2kKIFBBU19BUEkgdm9pZCogYm1hbGxvY19yZWFsbG9jYXRl
KHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpOwogCitQQVNfQVBJ
IHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2FuZF9yZXR1cm5fc2l6
ZShzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5
X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOworCitQQVNfQVBJIHBhc19v
YmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0dXJuX3Np
emUoc2l6ZV90IHNpemUpOworCitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2Nf
YWxsb2NhdGVfYW5kX3JldHVybl9zaXplKHNpemVfdCBzaXplKTsKK1BBU19BUEkgcGFzX29iamVj
dF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3Np
emUoc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOwor
CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfemVyb2VkX2Fu
ZF9yZXR1cm5fc2l6ZShzaXplX3Qgc2l6ZSk7CisKK1BBU19BUEkgcGFzX29iamVjdF93aXRoX3Np
emUgYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemUodm9pZCogb2xkX3B0ciwg
c2l6ZV90IG5ld19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJl
ZV9tb2RlKTsKKworUEFTX0FQSSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3JlYWxsb2Nh
dGVfYW5kX3JldHVybl9zaXplKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKTsKKwogUEFTX0FQSSB2b2lkKiBi
bWFsbG9jX3RyeV9pc29fYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZik7CiBQQVNfQVBJ
IHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpOwogCkBA
IC05MSw2ICsxMTAsNDAgQEAgUEFTX0FQSSB2b2lkKiBibWFsbG9jX3JlYWxsb2NhdGVfYXV4aWxp
YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdf
c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVh
bGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKTsKIAorUEFTX0FQSSBwYXNfb2JqZWN0X3dpdGhf
c2l6ZSBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplKAorICAg
IHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXplKTsKK1BB
U19BUEkgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfYW5k
X3JldHVybl9zaXplKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAg
IHNpemVfdCBzaXplKTsKKworUEFTX0FQSSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX3Ry
eV9hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZSgKKyAgICBwYXNfcHJp
bWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICBzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHBh
c19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9hbmRf
cmV0dXJuX3NpemUoCisgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAg
c2l6ZV90IHNpemUpOworCitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5
X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVudF9hbmRfcmV0dXJuX3NpemUoCisgICAg
cGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgc2l6ZV90IHNpemUsCisgICAg
c2l6ZV90IGFsaWdubWVudCk7CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2Nf
YWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZSgKKyAgICBw
YXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICBzaXplX3Qgc2l6ZSwKKyAgICBz
aXplX3QgYWxpZ25tZW50KTsKKworUEFTX0FQSSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9j
X3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemUoCisgICAgdm9pZCogb2xk
X3B0ciwKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKKyAgICBzaXplX3Qg
bmV3X3NpemUsCisgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSk7CitQQVNf
QVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfYW5k
X3JldHVybl9zaXplKAorICAgIHZvaWQqIG9sZF9wdHIsCisgICAgcGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiogaGVhcF9yZWYsCisgICAgc2l6ZV90IG5ld19zaXplLAorICAgIHBhc19yZWFsbG9jYXRl
X2ZyZWVfbW9kZSBmcmVlX21vZGUpOworCiBQQVNfQVBJIHZvaWQgYm1hbGxvY19kZWFsbG9jYXRl
KHZvaWQqKTsKIAogUEFTX0FQSSBwYXNfaGVhcCogYm1hbGxvY19mb3JjZV9hdXhpbGlhcnlfaGVh
cF9pbnRvX3Jlc2VydmVkX21lbW9yeShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9pbmxp
bmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1h
bGxvY19oZWFwX2lubGluZXMuaAkocmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtODIsOSArODIsMjcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDKAogICAg
ICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5z
aWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKK1BBU19BUEkgdm9pZCogYm1hbGxvY190cnlf
YWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHZvaWQqIGJtYWxsb2NfYWxsb2Nh
dGVfc2xvdyhzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZV9zbG93KHNpemVfdCBzaXplKTsKK1BBU19B
UEkgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVf
c2xvdyhzaXplX3Qgc2l6ZSk7CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFs
bG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuICh2b2lk
KilibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLmJlZ2luOworICAgIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0ID0gYm1hbGxvY190cnlfYWxsb2NhdGVf
aW1wbF9pbmxpbmVfb25seShzaXplLCAxKTsKKyAgICBpZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlk
X3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gKHZvaWQqKXJlc3VsdC5iZWdpbjsKKyAgICByZXR1
cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfc2xvdyhzaXplKTsKK30KKworc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHBhc19vYmplY3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2FuZF9y
ZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZV90IHNpemUpCit7CisgICAgcGFzX2FsbG9jYXRpb25fcmVz
dWx0IHJlc3VsdDsKKyAgICByZXN1bHQgPSBibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBsX2lubGlu
ZV9vbmx5KHNpemUsIDEpOworICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkp
CisgICAgICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0
aW9uX3Jlc3VsdChyZXN1bHQpOworICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hbmRf
cmV0dXJuX3NpemVfc2xvdyhzaXplKTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqCkBAIC05Myw2ICsxMTEsMTMgQEAgYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1l
bnRfaW5saQogICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGln
bm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUKK2JtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhf
YWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGln
bm1lbnQpCit7CisgICAgcmV0dXJuIHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2Fs
bG9jYXRpb25fcmVzdWx0KAorICAgICAgICBibWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdu
bWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkpOworfQorCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkK
IHsKICAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKApAQCAtMTAw
LDcgKzEyNSwxMyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190CiAg
ICAgICAgIHNpemUpLmJlZ2luOwogfQogCi1QQVNfQVBJIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVf
c2xvdyhzaXplX3Qgc2l6ZSk7CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93
aXRoX3NpemUKK2JtYWxsb2NfdHJ5X2FsbG9jYXRlX3plcm9lZF9hbmRfcmV0dXJuX3NpemVfaW5s
aW5lKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVh
dGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
X3plcm9fYWN0dWFsKAorICAgICAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVfaW1wbChzaXpl
LCAxKSkpOworfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxv
Y2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7CkBAIC0xMTEsMTIgKzE0MiwyOCBAQCBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hCiAgICAgcmV0dXJuIGJtYWxsb2NfYWxs
b2NhdGVfc2xvdyhzaXplKTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19vYmpl
Y3Rfd2l0aF9zaXplIGJtYWxsb2NfYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGluZShzaXpl
X3Qgc2l6ZSkKK3sKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHJlc3Vs
dCA9IGJtYWxsb2NfYWxsb2NhdGVfaW1wbF9pbmxpbmVfb25seShzaXplLCAxKTsKKyAgICBpZiAo
UEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gcGFzX29iamVj
dF93aXRoX3NpemVfY3JlYXRlX2Zyb21fYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KTsKKyAgICBy
ZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hbmRfcmV0dXJuX3NpemVfc2xvdyhzaXplKTsKK30KKwog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBibWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxp
Z25tZW50X2lubGluZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKIHsKICAgICByZXR1
cm4gKHZvaWQqKWJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGln
bm1lbnQpLmJlZ2luOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93
aXRoX3NpemUKK2JtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfYW5kX3JldHVybl9zaXpl
X2lubGluZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKK3sKKyAgICByZXR1cm4gcGFz
X29iamVjdF93aXRoX3NpemVfY3JlYXRlX2Zyb21fYWxsb2NhdGlvbl9yZXN1bHQoCisgICAgICAg
IGJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpKTsK
K30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfemVy
b2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKICAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0
aW9uX3Jlc3VsdF96ZXJvKApAQCAtMTI0LDYgKzE3MSwxMyBAQCBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCogYm1hbGxvY19hCiAgICAgICAgIHNpemUpLmJlZ2luOwogfQogCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV96
ZXJvZWRfYW5kX3JldHVybl9zaXplX2lubGluZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4g
cGFzX29iamVjdF93aXRoX3NpemVfY3JlYXRlX2Zyb21fYWxsb2NhdGlvbl9yZXN1bHQoCisgICAg
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvX2FjdHVhbCgKKyAgICAgICAgICAgIGJtYWxs
b2NfYWxsb2NhdGVfaW1wbChzaXplLCAxKSkpOworfQorCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCoKIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKHZvaWQqIG9sZF9wdHIsIHNp
emVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9j
YXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCkBAIC0xMzgsNiArMTkyLDIxIEBAIGJtYWxsb2NfdHJ5
X3JlYWxsb2NhdGVfaW5saW5lKHZvaWQqIG9sZF8KICAgICAgICAgZnJlZV9tb2RlKS5iZWdpbjsK
IH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19vYmplY3Rfd2l0aF9zaXplCitibWFs
bG9jX3RyeV9yZWFsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwg
c2l6ZV90IG5ld19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCit7CisgICAgcmV0dXJu
IHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAg
ICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljKAorICAgICAgICAgICAgb2xkX3B0ciwK
KyAgICAgICAgICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKKyAgICAgICAgICAg
IG5ld19zaXplLAorICAgICAgICAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKKyAgICAgICAgICAg
IGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCisgICAgICAgICAgICBwYXNf
cmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAorICAgICAgICAgICAgZnJlZV9tb2RlKSk7
Cit9CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19yZWFsbG9jYXRl
X2lubGluZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCkBAIC0xNTIsNiAr
MjIxLDIxIEBAIGJtYWxsb2NfcmVhbGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwKICAgICAg
ICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19v
YmplY3Rfd2l0aF9zaXplCitibWFsbG9jX3JlYWxsb2NhdGVfYW5kX3JldHVybl9zaXplX2lubGlu
ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQor
eworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9u
X3Jlc3VsdCgKKyAgICAgICAgcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpYygKKyAgICAgICAg
ICAgIG9sZF9wdHIsCisgICAgICAgICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAs
CisgICAgICAgICAgICBuZXdfc2l6ZSwKKyAgICAgICAgICAgIEJNQUxMT0NfSEVBUF9DT05GSUcs
CisgICAgICAgICAgICBibWFsbG9jX2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCisgICAgICAg
ICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAorICAgICAgICAgICAgZnJl
ZV9tb2RlKSk7Cit9CisKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIGJtYWxsb2NfdHJ5
X2lzb19hbGxvY2F0ZV9pbXBsLAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCkBAIC0yMjcsNiAr
MzExLDE0IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3QKICAgICBy
ZXR1cm4gKHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVm
LCBzaXplLCAxKS5iZWdpbjsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19vYmpl
Y3Rfd2l0aF9zaXplIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9hbmRfcmV0dXJuX3Np
emVfaW5saW5lKAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNp
emVfdCBzaXplKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJv
bV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxp
YXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpKTsKK30KKwogUEFTX0NSRUFURV9UUllfQUxMT0NB
VEVfUFJJTUlUSVZFKAogICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGwsCiAgICAg
Qk1BTExPQ19IRUFQX0NPTkZJRywKQEAgLTI0MCw2ICszMzIsMTQgQEAgc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYQogICAgIHJldHVybiAodm9pZCopYm1hbGxvY19hbGxv
Y2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47CiB9CiAKK3N0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBwYXNfb2JqZWN0X3dpdGhfc2l6ZSBibWFsbG9jX2FsbG9jYXRl
X2F1eGlsaWFyeV9hbmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAgIHBhc19wcmltaXRpdmVfaGVh
cF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBwYXNfb2Jq
ZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgYm1h
bGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkpOworfQorCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxp
YXJ5X3plcm9lZF9pbmxpbmUoCiAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYs
CiAgICAgc2l6ZV90IHNpemUpCkBAIC0yNDksNiArMzQ5LDE1IEBAIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKiBibWFsbG9jX3QKICAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKK3N0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBwYXNfb2JqZWN0X3dpdGhfc2l6ZQorYm1hbGxvY190cnlfYWxs
b2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9hbmRfcmV0dXJuX3NpemVfaW5saW5lKAorICAgIHBhc19w
cmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBzaXplKQoreworICAgIHJl
dHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgK
KyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm9fYWN0dWFsKGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKSkpOworfQorCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2Vk
X2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBzaXplKQogewpAQCAtMjU3LDYgKzM2NiwxNCBAQCBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCogYm1hbGxvY19hCiAgICAgICAgIHNpemUpLmJlZ2luOwogfQogCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY19hbGxvY2F0ZV9h
dXhpbGlhcnlfemVyb2VkX2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUoCisgICAgcGFzX3ByaW1pdGl2
ZV9oZWFwX3JlZiogaGVhcF9yZWYsCisgICAgc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIHBh
c19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAg
ICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVyb19hY3R1YWwoYm1hbGxvY19hbGxvY2F0ZV9hdXhp
bGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkpKTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqCiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1l
bnRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKQEAg
LTI2NSw2ICszODIsMTUgQEAgYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxp
ZwogICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGwo
aGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBwYXNfb2JqZWN0X3dpdGhfc2l6ZQorYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxp
YXJ5X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUocGFzX3ByaW1pdGl2ZV9o
ZWFwX3JlZiogaGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBhbGlnbm1lbnQpCit7CisgICAgcmV0dXJuIHBhc19vYmplY3Rfd2l0aF9zaXplX2Ny
ZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAorICAgICAgICBibWFsbG9jX3RyeV9hbGxvY2F0
ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KSk7Cit9CisKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0
aF9hbGlnbm1lbnRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXpl
LApAQCAtMjczLDYgKzM5OSwxNSBAQCBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2Fs
aWdubWVuCiAgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBs
KGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUKK2JtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5
X3dpdGhfYWxpZ25tZW50X2FuZF9yZXR1cm5fc2l6ZV9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiogaGVhcF9yZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxp
Z25tZW50KQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9h
bGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1w
bChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KSk7Cit9CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUoCiAgICAg
dm9pZCogb2xkX3B0ciwKICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKQEAg
LTI5MCw2ICs0MjUsMjQgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2Nf
dAogICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX29iamVjdF93aXRoX3NpemUgYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9hdXhpbGlhcnlf
YW5kX3JldHVybl9zaXplX2lubGluZSgKKyAgICB2b2lkKiBvbGRfcHRyLAorICAgIHBhc19wcmlt
aXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAgICBwYXNf
cmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0
X3dpdGhfc2l6ZV9jcmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgcGFzX3Ry
eV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSgKKyAgICAgICAgICAgIG9sZF9wdHIsCisgICAgICAgICAg
ICBoZWFwX3JlZiwKKyAgICAgICAgICAgIG5ld19zaXplLAorICAgICAgICAgICAgQk1BTExPQ19I
RUFQX0NPTkZJRywKKyAgICAgICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9p
bXBsX2Zvcl9yZWFsbG9jLAorICAgICAgICAgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVf
Y29uZmlnLmJhc2UsCisgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVw
b3J0LAorICAgICAgICAgICAgZnJlZV9tb2RlKSk7Cit9CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBibWFsbG9jX3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSh2b2lkKiBvbGRf
cHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBuZXdfc2l6ZSwKQEAgLTMwNiw2ICs0NTksMjQgQEAgc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfcgogICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQog
CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX29iamVjdF93aXRoX3NpemUKK2JtYWxsb2Nf
cmVhbGxvY2F0ZV9hdXhpbGlhcnlfYW5kX3JldHVybl9zaXplX2lubGluZSh2b2lkKiBvbGRfcHRy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9m
cmVlX21vZGUgZnJlZV9tb2RlKQoreworICAgIHJldHVybiBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9j
cmVhdGVfZnJvbV9hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICAgICAgcGFzX3RyeV9yZWFsbG9jYXRl
X3ByaW1pdGl2ZSgKKyAgICAgICAgICAgIG9sZF9wdHIsCisgICAgICAgICAgICBoZWFwX3JlZiwK
KyAgICAgICAgICAgIG5ld19zaXplLAorICAgICAgICAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywK
KyAgICAgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGxfZm9yX3JlYWxsb2Ms
CisgICAgICAgICAgICAmYm1hbGxvY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKKyAg
ICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCisgICAgICAgICAg
ICBmcmVlX21vZGUpKTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgYm1hbGxv
Y19kZWFsbG9jYXRlX2lubGluZSh2b2lkKiBwdHIpCiB7CiAgICAgcGFzX2RlYWxsb2NhdGUocHRy
LCBCTUFMTE9DX0hFQVBfQ09ORklHKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1
bHQuaAkocmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtNjMs
OCArNjMsMTIgQEAgcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfYWxsb2NhdAogewog
ICAgIGlmICghcmVzdWx0LnJlc3VsdCkKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGVfZmFpbHVyZSgpOwotICAgIAorCisgICAgLyogV2Ugc2F5IHRoYXQgdGhlIGFj
dHVhbF9zaXplIGlzIHRoZSByZXN1bHRfc2l6ZSBiZWNhdXNlIHRoZSB0eXBpY2FsIHVzZSBjYXNl
IGZvciBhbgorICAgICAgIGFsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQgaXMgdGhhdCB0aGUgbGVm
dC9yaWdodCBwYWRkaW5nIGlzIHJldHVybmVkIGJhY2sgdG8gdGhlCisgICAgICAgYWxsb2NhdG9y
LiAqLwogICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0
aF96ZXJvX21vZGUoKHVpbnRwdHJfdClyZXN1bHQucmVzdWx0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJlc3Vs
dF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0Lnplcm9fbW9kZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3Vs
dC5oCShyZXZpc2lvbiAyODM4MTMpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBA
QCB0eXBlZGVmIHN0cnVjdCBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzCiAgICBvbiB0aGUgYWxs
b2NhdGlvbiBmYXN0IHBhdGggd29yay4gKi8KIHN0cnVjdCBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
ewogICAgIHVpbnRwdHJfdCBiZWdpbjsKKyAgICBzaXplX3QgYWN0dWFsX3NpemU7CiAgICAgYm9v
bCBkaWRfc3VjY2VlZDsKICAgICBwYXNfemVyb19tb2RlIHplcm9fbW9kZTsKIH07CkBAIC01Miwy
NCArNTMsMjggQEAgc3RhdGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzXwogICAg
IHJlc3VsdC5kaWRfc3VjY2VlZCA9IGZhbHNlOwogICAgIHJlc3VsdC56ZXJvX21vZGUgPSBwYXNf
emVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvOwogICAgIHJlc3VsdC5iZWdpbiA9IDA7CisgICAg
cmVzdWx0LmFjdHVhbF9zaXplID0gMDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMg
aW5saW5lIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0
ZV9zdWNjZXNzX3dpdGhfemVyb19tb2RlKHVpbnRwdHJfdCBiZWdpbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWN0dWFsX3NpemUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3plcm9fbW9kZSB6ZXJvX21vZGUpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3Vs
dDsKICAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSB0cnVlOwogICAgIHJlc3VsdC56ZXJvX21vZGUg
PSB6ZXJvX21vZGU7CiAgICAgcmVzdWx0LmJlZ2luID0gYmVnaW47CisgICAgcmVzdWx0LmFjdHVh
bF9zaXplID0gYWN0dWFsX3NpemU7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlu
bGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9z
dWNjZXNzKHVpbnRwdHJfdCBiZWdpbikKK3N0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRpb25fcmVz
dWx0IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzcyh1aW50cHRyX3QgYmVnaW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGFjdHVhbF9zaXplKQogewogICAgIHJldHVybiBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUoCi0gICAgICAg
IGJlZ2luLCBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvKTsKKyAgICAgICAgYmVnaW4s
IGFjdHVhbF9zaXplLCBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvKTsKIH0KIAogc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdApAQCAtNzgsNiArODMs
MTAgQEAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KHBhc19hbGxvYwogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKKy8qIFdlaXJkIGFzIGl0IGlzLCBpdCBtYWtlcyBhIGxvdCBvZiBzZW5j
ZSBmb3IgdGhpcyB0byB0YWtlIHNpemUgYXMgYSBwYXJhbWV0ZXIgZXZlbiB0aG91Z2ggdGhlCisg
ICByZXN1bHQgb2JqZWN0IGhhcyB0aGUgYWN0dWFsX3NpemUuIFJlYXNvbjogYWN0dWFsX3NpemUg
aXMgdGhlIHNpemUgdGhhdCB0aGUgYWxsb2NhdG9yIHZlbmRlZCwKKyAgIHdoaWxlIHRoZSBwYXNz
ZWQgc2l6ZSBpcyB0aGUgc2l6ZSB0aGUgdXNlciB3YW50ZWQuIFRoaXMgaXMgYWJvdXQgemVyb2lu
ZyB1cCB0byB0aGUgc2l6ZSB0aGF0CisgICB0aGUgdXNlciB3YW50ZWQuIEluIG1hbnkgY2FzZXMs
IGFjdHVhbF9zaXplIGlzIHRvdGFsbHkgdW5pbnRlcmVzdGluZyB0byB0aGUgdXNlci4gKi8KIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF96ZXJvKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKQEAgLTg2LDEyICs5NSwxOCBAQCBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfemVybyhwYXNfYWxsb2NhdGlvCiAgICAgICAgICYmIHJlc3VsdC56ZXJv
X21vZGUgPT0gcGFzX3plcm9fbW9kZV9tYXlfaGF2ZV9ub25femVybykgewogICAgICAgICBwYXNf
emVyb19tZW1vcnkoKHZvaWQqKXJlc3VsdC5iZWdpbiwgc2l6ZSk7CiAgICAgICAgIHJldHVybiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUoCi0gICAg
ICAgICAgICByZXN1bHQuYmVnaW4sIHBhc196ZXJvX21vZGVfaXNfYWxsX3plcm8pOworICAgICAg
ICAgICAgcmVzdWx0LmJlZ2luLCBzaXplLCBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvKTsKICAg
ICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm9fYWN0dWFsKHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCit7CisgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdF96ZXJvKHJlc3VsdCwgcmVzdWx0LmFjdHVhbF9zaXplKTsKK30KKworc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX2FsbG9jYXRpb25fcmVz
dWx0X3NldF9lcnJubyhwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQogewogICAgIGlmICgh
cmVzdWx0LmRpZF9zdWNjZWVkKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaAko
cmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQsNyArMTk0
LDcgQEAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19iaQogICAgICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coImJpdGZpdCBhbGxvY2F0aW9uIHN1Y2Nl
ZWRlZCB3aXRoICVwXG4iLCAodm9pZCopYml0Zml0X3Jlc3VsdC51LnJlc3VsdCk7CiAgICAgICAg
IAotICAgICAgICByZXR1cm4gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVf
c3VjY2VzcyhiaXRmaXRfcmVzdWx0LnUucmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHBhc19mYXN0
X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoYml0Zml0X3Jlc3VsdC51LnJl
c3VsdCwgc2l6ZSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfZGVidWdfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19kZWJ1Z19oZWFwLmgJKHJldmlzaW9uIDI4MzgxMykKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWJ1Z19oZWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNyw2ICsxMDcsNyBAQCBzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdCBwYXNfCiAgICAgcmVzdWx0LmRpZF9zdWNjZWVkID0gISFyYXdfcmVzdWx0OwogICAgIHJl
c3VsdC5iZWdpbiA9ICh1aW50cHRyX3QpcmF3X3Jlc3VsdDsKICAgICByZXN1bHQuemVyb19tb2Rl
ID0gcGFzX3plcm9fbW9kZV9tYXlfaGF2ZV9ub25femVybzsKKyAgICByZXN1bHQuYWN0dWFsX3Np
emUgPSByYXdfcmVzdWx0ID8gc2l6ZSA6IDA7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfcGF0aF9hbGxvY2F0
aW9uX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaAkocmV2aXNpb24gMjgzODEzKQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfcGF0aF9hbGxvY2F0
aW9uX3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDYgKzM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
cGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uXwogc3RydWN0IHBhc19mYXN0X3BhdGhfYWxsb2NhdGlv
bl9yZXN1bHQgewogICAgIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZCBraW5k
OwogICAgIHVpbnRwdHJfdCBiZWdpbjsKKyAgICBzaXplX3QgYWN0dWFsX3NpemU7CiB9OwogCiBz
dGF0aWMgaW5saW5lIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQKQEAgLTQ3LDYgKzQ4
LDcgQEAgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocAogICAgICAgICAg
ICAgICAgfHwga2luZCA9PSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X291dF9vZl9t
ZW1vcnkpOwogICAgIHJlc3VsdC5raW5kID0ga2luZDsKICAgICByZXN1bHQuYmVnaW4gPSAwOwor
ICAgIHJlc3VsdC5hY3R1YWxfc2l6ZSA9IDA7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAt
NjMsMTEgKzY1LDEyIEBAIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX28K
IH0KIAogc3RhdGljIGlubGluZSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNf
ZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHVpbnRwdHJfdCBiZWdp
bikKK3Bhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3ModWludHB0
cl90IGJlZ2luLCBzaXplX3QgYWN0dWFsX3NpemUpCiB7CiAgICAgcGFzX2Zhc3RfcGF0aF9hbGxv
Y2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAgcmVzdWx0LmtpbmQgPSBwYXNfZmFzdF9wYXRoX2Fs
bG9jYXRpb25fcmVzdWx0X3N1Y2Nlc3M7CiAgICAgcmVzdWx0LmJlZ2luID0gYmVnaW47CisgICAg
cmVzdWx0LmFjdHVhbF9zaXplID0gYWN0dWFsX3NpemU7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApAQCAtODIsNiArODUsNyBAQCBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2Zyb21f
YWxsCiAgICAgICAgID8gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9zdWNjZXNzCiAg
ICAgICAgIDogZmFpbHVyZV9raW5kOwogICAgIHJlc3VsdC5iZWdpbiA9IGFsbG9jYXRpb25fcmVz
dWx0LmJlZ2luOworICAgIHJlc3VsdC5hY3R1YWxfc2l6ZSA9IGFsbG9jYXRpb25fcmVzdWx0LmFj
dHVhbF9zaXplOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTg5LDcgKzkzLDcgQEAgc3Rh
dGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlv
bl9yZXN1bHRfdG9fYWxsb2NhdGlvbl9yZXN1bHQocGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jl
c3VsdCBmYXN0X3Jlc3VsdCkKIHsKICAgICBpZiAoZmFzdF9yZXN1bHQua2luZCA9PSBwYXNfZmFz
dF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X3N1Y2Nlc3MpCi0gICAgICAgIHJldHVybiBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoZmFzdF9yZXN1bHQuYmVnaW4pOworICAgICAg
ICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKGZhc3RfcmVzdWx0
LmJlZ2luLCBmYXN0X3Jlc3VsdC5hY3R1YWxfc2l6ZSk7CiAgICAgcmV0dXJuIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2VuZXJpY19sYXJnZV9m
cmVlX2hlYXAuaAkocmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE4Nyw3ICsxODcsNyBAQCBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXBfdHJ5X2FsbG9jYXRl
CiAgICAgICAgIHRlc3RfYWxsb2NhdGlvbl9jYW5kaWRhdGVfZGF0YTsKICAgICAKICAgICBpZiAo
IXNpemUpCi0gICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nl
c3Nfd2l0aF96ZXJvX21vZGUoMCwgcGFzX3plcm9fbW9kZV9pc19hbGxfemVybyk7CisgICAgICAg
IHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21v
ZGUoMCwgMCwgcGFzX3plcm9fbW9kZV9pc19hbGxfemVybyk7CiAgICAgCiAgICAgaWYgKFBBU19H
RU5FUklDX0xBUkdFX0ZSRUVfSEVBUF9WRVJCT1NFID49IDIpCiAgICAgICAgIHByaW50ZigiQWxs
b2NhdGluZyBzaXplID0gJXp1XG4iLCBzaXplKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9pbmxpbmVzLmgJKHJl
dmlzaW9uIDI4MzgxMykKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
YXJnZV9mcmVlX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5Myw3IEBAIHBh
c19sYXJnZV9hbGxvY2F0aW9uX3Jlc3VsdF9hc19hbGxvY2F0aW8KIAogICAgIHJldHVybiBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUoCiAgICAgICAg
IHJlc3VsdC5hbGxvY2F0aW9uLmJlZ2luLAorICAgICAgICBwYXNfbGFyZ2VfZnJlZV9zaXplKHJl
c3VsdC5hbGxvY2F0aW9uKSwKICAgICAgICAgcmVzdWx0LmFsbG9jYXRpb24uemVyb19tb2RlKTsK
IH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2Fs
bG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MzgxMykK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NDksNyArNTQ5LDcgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zZXRfdXBfcHJpbW9yZGlhbF9idQogCiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAg
Y2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByaW1vcmRpYWxfYnVtcF9yZXR1cm5fZmlyc3RfYWxs
b2NhdGlvbjoKLSAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3Vj
Y2VzcyhwYWdlX2JvdW5kYXJ5ICsgYmVnaW5fb2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhwYWdlX2JvdW5kYXJ5ICsgYmVnaW5fb2Zm
c2V0LCBvYmplY3Rfc2l6ZSk7CiAKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfcHJpbW9y
ZGlhbF9idW1wX3N0YXNoX3dob2xlX2FsbG9jYXRpb246CiAgICAgICAgIHJldHVybiBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKQEAgLTE0MzAsNyArMTQzMCw3IEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3dpdGhfZnIKICAgICAgICAgICAgICh2b2lk
KilyZXN1bHQpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyZWF0ZV9zdWNjZXNzKHJlc3VsdCk7CisgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmVhdGVfc3VjY2VzcyhyZXN1bHQsIGFsbG9jYXRvci0+b2JqZWN0X3NpemUpOwogfQogCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CkBAIC0xNDcyLDcg
KzE0NzIsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfCiAgICAg
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiUmV0dXJuaW5nIGJ1bXAgYWxs
b2NhdGlvbiAlcC5cbiIsICh2b2lkKilyZXN1bHQpOwogICAgICAgICAKLSAgICAgICAgcmV0dXJu
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhyZXN1bHQpOworICAgICAgICBy
ZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHJlc3VsdCwgb2JqZWN0
X3NpemUpOwogICAgIH0KIAogICAgIGlmIChjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcu
YmFzZS5pc19lbmFibGVkKSB7CkBAIC0xNzAyLDcgKzE3MDIsOCBAQCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfCiAgICAgICAgIH0KICAgICAKICAgICAgICAgcmV0dXJu
IHJlc3VsdF9maWx0ZXIoCi0gICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUocmVzdWx0LmJlZ2luLCByZXN1bHQuemVyb19tb2RlKSk7
CisgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96
ZXJvX21vZGUoCisgICAgICAgICAgICAgICAgcmVzdWx0LmJlZ2luLCByZXN1bHQuYWN0dWFsX3Np
emUsIHJlc3VsdC56ZXJvX21vZGUpKTsKICAgICB9CiAKICAgICBwYXNfY29tcGlsZXJfZmVuY2Uo
KTsKQEAgLTE3NDcsNyArMTc0OCw4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRl
KHBhc19sb2MKICAgICAgICAgfQogICAgIAogICAgICAgICByZXR1cm4gcmVzdWx0X2ZpbHRlcigK
LSAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3pl
cm9fbW9kZShyZXN1bHQuYmVnaW4sIHJlc3VsdC56ZXJvX21vZGUpKTsKKyAgICAgICAgICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3plcm9fbW9kZSgKKyAgICAg
ICAgICAgICAgICByZXN1bHQuYmVnaW4sIHJlc3VsdC5hY3R1YWxfc2l6ZSwgcmVzdWx0Lnplcm9f
bW9kZSkpOwogICAgIH0KIAogICAgIGlmIChQQVNfVU5MSUtFTFkocGFzX2RlYnVnX2hlYXBfaXNf
ZW5hYmxlZChjb25maWcua2luZCkpKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX29iamVjdF93aXRoX3NpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfb2JqZWN0X3dpdGhfc2l6ZS5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19vYmplY3Rfd2l0aF9zaXpl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19PQkpFQ1RfV0lUSF9TSVpFX0gK
KyNkZWZpbmUgUEFTX09CSkVDVF9XSVRIX1NJWkVfSAorCisjaW5jbHVkZSAicGFzX2FsbG9jYXRp
b25fcmVzdWx0LmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19vYmplY3Rf
d2l0aF9zaXplOwordHlwZWRlZiBzdHJ1Y3QgcGFzX29iamVjdF93aXRoX3NpemUgcGFzX29iamVj
dF93aXRoX3NpemU7CisKKy8qIFRoaXMgaXMgYSBsaWdodHdlaWdodCB2ZXJzaW9uIG9mIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCB0aGF0IGl0J3MgcmVhc29uYWJsZSB0byByZXR1cm4gZnJvbQorICAg
ZnVuY3Rpb25zIHNpbmNlIGl0IHF1YWxpZmllcyBmb3IgcmVnaXN0ZXItYWxsb2NhdGVkIHJldHVy
bi4gKi8KK3N0cnVjdCBwYXNfb2JqZWN0X3dpdGhfc2l6ZSB7CisgICAgdm9pZCogb2JqZWN0Owor
ICAgIHNpemVfdCBzaXplOworfTsKKworc3RhdGljIGlubGluZSBwYXNfb2JqZWN0X3dpdGhfc2l6
ZSBwYXNfb2JqZWN0X3dpdGhfc2l6ZV9jcmVhdGVfZW1wdHkodm9pZCkKK3sKKyAgICBwYXNfb2Jq
ZWN0X3dpdGhfc2l6ZSByZXN1bHQ7CisgICAgcmVzdWx0Lm9iamVjdCA9IE5VTEw7CisgICAgcmVz
dWx0LnNpemUgPSAwOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFz
X29iamVjdF93aXRoX3NpemUgcGFzX29iamVjdF93aXRoX3NpemVfY3JlYXRlKHZvaWQqIG9iamVj
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBzaXplKQoreworICAgIHBhc19vYmplY3Rfd2l0aF9zaXplIHJlc3Vs
dDsKKyAgICByZXN1bHQub2JqZWN0ID0gb2JqZWN0OworICAgIHJlc3VsdC5zaXplID0gc2l6ZTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgaW5saW5lIHBhc19vYmplY3Rfd2l0aF9z
aXplIHBhc19vYmplY3Rfd2l0aF9zaXplX2NyZWF0ZV9mcm9tX2FsbG9jYXRpb25fcmVzdWx0KAor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBhbGxvY2F0aW9uX3Jlc3VsdCkKK3sKKyAgICBwYXNf
b2JqZWN0X3dpdGhfc2l6ZSByZXN1bHQ7CisgICAgcmVzdWx0Lm9iamVjdCA9ICh2b2lkKilhbGxv
Y2F0aW9uX3Jlc3VsdC5iZWdpbjsKKyAgICByZXN1bHQuc2l6ZSA9IGFsbG9jYXRpb25fcmVzdWx0
LmFjdHVhbF9zaXplOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1BBU19FTkRfRVhURVJOX0M7
CisKKyNlbmRpZiAvKiBQQVNfT0JKRUNUX1dJVEhfU0laRSAqLworCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCShyZXZp
c2lvbiAyODM4MTMpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X2FsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw4ICsxMDMsOCBAQCBwYXNfdHJ5X2Fs
bG9jYXRlX2ltcGwocGFzX2hlYXBfcmVmKiBoZWFwCiAgICAgICAgICAgICAgICAgJnNpemVfdGh1
bmtfZGF0YSwgMSk7CiAKICAgICAgICAgICAgIHR5cGUgPSBoZWFwX3JlZi0+dHlwZTsKLSAgICAg
ICAgICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAotICAgICAgICAgICAgICAgIHJlc3VsdCwgdHlwZSwg
Y29uZmlnLmdldF90eXBlX3NpemUodHlwZSkpOworICAgICAgICAgICAgcmV0dXJuIHBhc190eXBl
ZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUoCisgICAgICAgICAgICAgICAgdHlwZSwgcmVzdWx0
LCBjb25maWcuZ2V0X3R5cGVfc2l6ZSh0eXBlKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
dmVyYm9zZSkKQEAgLTExNyw5ICsxMTcsMTAgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbXBsKHBhc19o
ZWFwX3JlZiogaGVhcAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJBbGxvY2F0
aW5nIHRoZSBzbG93IHdheS5cbiIpOwogCi0gICAgcmVzdWx0ID0gcGFzX3R5cGVkX2FsbG9jYXRp
b25fcmVzdWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICBy
ZXN1bHQgPSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKAorICAgICAgICB0eXBl
LAogICAgICAgICB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3coaGVhcF9yZWYsIDEsIHR5cGVfc2l6
ZSwgMSksCi0gICAgICAgIHR5cGUsIHR5cGVfc2l6ZSk7CisgICAgICAgIHR5cGVfc2l6ZSk7CiAK
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygicmVzdWx0LnB0ciA9ICVwLCByZXN1
bHQuZGlkX3N1Y2NlZWQgPSAlZFxuIiwgcmVzdWx0LnB0ciwgcmVzdWx0LmRpZF9zdWNjZWVkKTsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVf
YXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgJKHJldmlzaW9uIDI4MzgxMykKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE0LDkgKzExNCwxMCBAQCBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5X2ltcGwocGFz
X2hlYXBfcmVmCiAgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxp
Z25tZW50KChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3IuYWxsb2NhdG9yKSkKICAgICAg
ICAgYWxsb2NhdG9yLmRpZF9zdWNjZWVkID0gZmFsc2U7CiAgICAgCi0gICAgcmV0dXJuIHBhc190
eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHQoCisgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUoCisg
ICAgICAgIHR5cGUsCiAgICAgICAgIHRyeV9hbGxvY2F0ZV9jb21tb24oaGVhcF9yZWYsIGFsaWdu
ZWRfY291bnQsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBhbGxvY2F0b3IpLAotICAgICAgICB0
eXBlLCBhbGlnbmVkX3NpemUpOworICAgICAgICBhbGlnbmVkX3NpemUpOwogfQogCiAjZGVmaW5l
IFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKG5hbWUsIGhlYXBfY29uZmlnLCBydW50aW1l
X2NvbmZpZywgYWxsb2NhdG9yX2NvdW50cywgcmVzdWx0X2ZpbHRlcikgXApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpYy5oCShyZXZpc2lvbiAyODM4MTMpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTQsMTAgKzI1NCwxMiBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBs
X2lubGluZV9vCiAgICAgICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3JfaW5kZXggPSAldS5cbiIs
IGFsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIAogICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcihjYWNoZSwgYWxs
b2NhdG9yX2luZGV4KTsKKworICAgICAgICBpZiAoUEFTX1VOTElLRUxZKCFhbGxvY2F0b3JfcmVz
dWx0LmRpZF9zdWNjZWVkKSkKKyAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICB9Ci0gICAgCi0gICAgaWYgKFBBU19VTkxJS0VMWSgh
YWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCkpCi0gICAgICAgIHJldHVybiBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVChh
bGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkKTsKICAgICAKICAgICBhbGxvY2F0b3IgPSAocGFz
X2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yX3Jlc3VsdC5hbGxvY2F0b3I7CiAgICAgCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3Jl
YWxsb2NhdGUuaAkocmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4Miw5ICsz
ODIsOSBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX2FsbG9jYXRlX2NhCiAgICAgCiAg
ICAgZGF0YSA9IChwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX2FsbG9jYXRlX2RhdGEqKWFy
ZzsKICAgICAKLSAgICByZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93
aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKLSAgICAgICAgZGF0YS0+dHJ5X2FsbG9j
YXRlX2ludHJpbnNpYyhuZXdfY291bnQpLAorICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlKAogICAgICAgICBOVUxMLAorICAgICAgICBkYXRhLT50cnlfYWxsb2Nh
dGVfaW50cmluc2ljKG5ld19jb3VudCksCiAgICAgICAgIG5ld19jb3VudCk7CiB9CiAKQEAgLTQw
Miw3ICs0MDIsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljKAogICAgIAogICAgIGRh
dGEudHJ5X2FsbG9jYXRlX2ludHJpbnNpYyA9IHRyeV9hbGxvY2F0ZV9pbnRyaW5zaWM7CiAgICAg
Ci0gICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQoCisgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9h
c19hbGxvY2F0aW9uX3Jlc3VsdCgKICAgICAgICAgcGFzX3RyeV9yZWFsbG9jYXRlKAogICAgICAg
ICAgICAgb2xkX3B0ciwKICAgICAgICAgICAgIGhlYXAsCkBAIC01NDEsOSArNTQxLDkgQEAgcGFz
X3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9jYQogICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICBwYXNfbG9nKCJpbiByZWFsbG9jIC0gcmVzdWx0LmJlZ2luID0gJXBcbiIsICh2b2lk
KilyZXN1bHQuYmVnaW4pOwogICAgIAotICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9y
ZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAotICAgICAgICBy
ZXN1bHQsCisgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUoCiAg
ICAgICAgIE5VTEwsCisgICAgICAgIHJlc3VsdCwKICAgICAgICAgbmV3X2NvdW50KTsKIH0KIApA
QCAtNTYzLDcgKzU2Myw3IEBAIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCiAgICAgZGF0
YS5oZWFwX3JlZiA9IGhlYXBfcmVmOwogICAgIGRhdGEudHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZSA9
IHRyeV9hbGxvY2F0ZV9wcmltaXRpdmU7CiAgICAgCi0gICAgcmV0dXJuIHBhc190eXBlZF9hbGxv
Y2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCisgICAgcmV0dXJu
IHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19hbGxvY2F0aW9uX3Jlc3VsdCgKICAgICAg
ICAgcGFzX3RyeV9yZWFsbG9jYXRlKAogICAgICAgICAgICAgb2xkX3B0ciwKICAgICAgICAgICAg
IHBhc19lbnN1cmVfaGVhcCgmaGVhcF9yZWYtPmJhc2UsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHQuaAkocmV2aXNpb24gMjgzODEzKQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcs
NyArMzcsOSBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1CiBzdHJ1
Y3QgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHsKICAgICBwYXNfaGVhcF90eXBlKiB0eXBl
OwogICAgIHZvaWQqIHB0cjsKLSAgICBzaXplX3Qgc2l6ZTsKKyAgICBzaXplX3Qgc2l6ZTsgLyog
VGhlIHNpemUgdGhhdCB0aGUgdXNlciB3YW50ZWQuICovCisgICAgc2l6ZV90IGFjdHVhbF9zaXpl
OyAvKiBUaGUgc2l6ZSB0aGF0IHRoZSBhbGxvY2F0b3IgdmVuZGVkIChhdCBsZWFzdCBhcyBiaWcg
YXMgd2hhdCB0aGUgdXNlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FudGVkKS4gKi8K
ICAgICBib29sIGRpZF9zdWNjZWVkOwogICAgIHBhc196ZXJvX21vZGUgemVyb19tb2RlOwogfTsK
QEAgLTQ4LDYgKzUwLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxv
YwogICAgIHJlc3VsdC50eXBlID0gTlVMTDsKICAgICByZXN1bHQucHRyID0gTlVMTDsKICAgICBy
ZXN1bHQuc2l6ZSA9IDA7CisgICAgcmVzdWx0LmFjdHVhbF9zaXplID0gMDsKICAgICByZXN1bHQu
ZGlkX3N1Y2NlZWQgPSBmYWxzZTsKICAgICByZXN1bHQuemVyb19tb2RlID0gcGFzX3plcm9fbW9k
ZV9tYXlfaGF2ZV9ub25femVybzsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNjYsMzQgKzY5LDI0
IEBAIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocGFzX2gKICAgICByZXN1bHQu
dHlwZSA9IHR5cGU7CiAgICAgcmVzdWx0LnB0ciA9ICh2b2lkKilhbGxvY2F0aW9uX3Jlc3VsdC5i
ZWdpbjsKICAgICByZXN1bHQuc2l6ZSA9IHNpemU7CisgICAgcmVzdWx0LmFjdHVhbF9zaXplID0g
YWxsb2NhdGlvbl9yZXN1bHQuYWN0dWFsX3NpemU7CiAgICAgcmVzdWx0LmRpZF9zdWNjZWVkID0g
YWxsb2NhdGlvbl9yZXN1bHQuZGlkX3N1Y2NlZWQ7CiAgICAgcmVzdWx0Lnplcm9fbW9kZSA9IGFs
bG9jYXRpb25fcmVzdWx0Lnplcm9fbW9kZTsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVChyZXN1
bHQuYWN0dWFsX3NpemUgPj0gcmVzdWx0LnNpemUpOworICAgIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKLXBh
c190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQo
Ci0gICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IGludGVybmFsX3Jlc3VsdCkKK3Bhc190
eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19hbGxvY2F0aW9uX3Jlc3VsdCgKKyAgICBwYXNfdHlw
ZWRfYWxsb2NhdGlvbl9yZXN1bHQgdHlwZWRfcmVzdWx0KQogewogICAgIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdCByZXN1bHQ7Ci0gICAgcmVzdWx0LmJlZ2luID0gKHVpbnRwdHJfdClpbnRlcm5hbF9y
ZXN1bHQucHRyOwotICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGludGVybmFsX3Jlc3VsdC5kaWRf
c3VjY2VlZDsKLSAgICByZXN1bHQuemVyb19tb2RlID0gaW50ZXJuYWxfcmVzdWx0Lnplcm9fbW9k
ZTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3Jl
YXRlX3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAotICAgIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdCBpbnRyaW5zaWNfcmVzdWx0LAotICAgIHBhc19oZWFwX3R5cGUqIHR5cGUsCi0gICAg
c2l6ZV90IHNpemUpCi17Ci0gICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsK
LSAgICByZXN1bHQudHlwZSA9IHR5cGU7Ci0gICAgcmVzdWx0LnB0ciA9ICh2b2lkKilpbnRyaW5z
aWNfcmVzdWx0LmJlZ2luOwotICAgIHJlc3VsdC5zaXplID0gc2l6ZTsKLSAgICByZXN1bHQuZGlk
X3N1Y2NlZWQgPSBpbnRyaW5zaWNfcmVzdWx0LmRpZF9zdWNjZWVkOwotICAgIHJlc3VsdC56ZXJv
X21vZGUgPSBpbnRyaW5zaWNfcmVzdWx0Lnplcm9fbW9kZTsKKyAgICByZXN1bHQuYmVnaW4gPSAo
dWludHB0cl90KXR5cGVkX3Jlc3VsdC5wdHI7CisgICAgcmVzdWx0LmRpZF9zdWNjZWVkID0gdHlw
ZWRfcmVzdWx0LmRpZF9zdWNjZWVkOworICAgIHJlc3VsdC56ZXJvX21vZGUgPSB0eXBlZF9yZXN1
bHQuemVyb19tb2RlOworICAgIHJlc3VsdC5hY3R1YWxfc2l6ZSA9IHR5cGVkX3Jlc3VsdC5hY3R1
YWxfc2l6ZTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMDEsNyArOTQsNyBAQCBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jCiBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfemVybyhwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQogewogICAg
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAotICAgICAgICBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCksCisgICAgICAg
IHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQp
LAogICAgICAgICByZXN1bHQuc2l6ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExMCw3
ICsxMDMsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jCiBwYXNf
dHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jl
c3VsdCByZXN1bHQpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubygKLSAg
ICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdChyZXN1bHQpKTsKKyAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2Fz
X2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAg
LTExOCw3ICsxMTEsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9j
CiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IocGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKIHsKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jh
c2hfb25fZXJyb3IoCi0gICAgICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KSk7CisgICAgICAgIHBhc190eXBlZF9hbGxv
Y2F0aW9uX3Jlc3VsdF9hc19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVh
cENoYW9zVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAJKHJldmlzaW9uIDI4MzgxMykKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgzLDYgKzgzLDEzIEBAIHZvaWQqIGdpZ2FjYWdlQWxsb2NhdGUoc2l6ZV90IHNpemUp
CiB7CiAgICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5KCZnaWdhY2FnZUhlYXBS
ZWYsIHNpemUpOwogfQorCit2b2lkKiBibWFsbG9jQWxsb2NhdGVBbmRSZXR1cm5TaXplQW5kQXNz
ZXJ0U2l6ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICBwYXNfb2JqZWN0X3dpdGhfc2l6ZSByZXN1bHQg
PSBibWFsbG9jX2FsbG9jYXRlX2FuZF9yZXR1cm5fc2l6ZShzaXplKTsKKyAgICBDSEVDSyhyZXN1
bHQuc2l6ZSA+PSBzaXplKTsKKyAgICByZXR1cm4gcmVzdWx0Lm9iamVjdDsKK30KICNlbmRpZiAv
LyBQQVNfRU5BQkxFX0JNQUxMT0MKIAogdm9pZCBmbHVzaERlYWxsb2NhdGlvbkxvZ0FuZFN0b3BB
bGxvY2F0b3JzKCkKQEAgLTEwNzQsNiArMTA4MSwyMiBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rl
c3RzKCkKIAogICAgIHsKICAgICAgICAgVGVzdFNjb3BlIGlzbygKKyAgICAgICAgICAgICJibWFs
bG9jLWFuZC1yZXR1cm4tc2l6ZSIsCisgICAgICAgICAgICBbXSAoKSB7CisgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRIZWFwQ29uZmlnID0gJmJtYWxsb2NfaGVhcF9jb25maWc7CisgICAgICAgICAg
ICAgICAgc2VsZWN0ZWRBbGxvY2F0ZUNvbW1vblByaW1pdGl2ZSA9IGJtYWxsb2NBbGxvY2F0ZUFu
ZFJldHVyblNpemVBbmRBc3NlcnRTaXplOworICAgICAgICAgICAgICAgIHNlbGVjdGVkQWxsb2Nh
dGUgPSBudWxscHRyOworICAgICAgICAgICAgICAgIHNlbGVjdGVkQWxsb2NhdGVBcnJheSA9IG51
bGxwdHI7CisgICAgICAgICAgICAgICAgc2VsZWN0ZWREZWFsbG9jYXRlID0gYm1hbGxvY19kZWFs
bG9jYXRlOworICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29tbW9uUHJpbWl0aXZlSGVhcCA9ICZi
bWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcDsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZEhl
YXBSZWZHZXRIZWFwID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0pOworICAgIAorICAgICAgICBB
RERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDAsIDEwMDAsIDUwMDAwMCwgc29tZXRpbWVz
U21hbGxTb21ldGltZXNCaWcsIDEwMDAwMDAwLCBmYWxzZSkpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgVGVzdFNjb3BlIGlzbygKICAgICAgICAgICAgICJibWFsbG9jLWdpZ2FjYWdlIiwKICAg
ICAgICAgICAgIFtdICgpIHsKICAgICAgICAgICAgICAgICBnaWdhY2FnZUhlYXBSZWYgPSBCTUFM
TE9DX0FVWElMSUFSWV9IRUFQX1JFRl9JTklUSUFMSVpFUjsK
</data>
<flag name="review"
          id="464751"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="464752"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>